V MariaDB, TIME()
je vestavěná funkce data a času, která extrahuje část času z daného času nebo výrazu datetime a vrátí ji jako řetězec.
Přijímá jeden argument, kterým je čas nebo datum a čas, pro který chcete extrahovat čas.
Syntaxe
Syntaxe vypadá takto:
TIME(expr)
Kde expr
je výraz času nebo data a času, pro který se má extrahovat čas.
Příklad
Zde je příklad k demonstraci:
SELECT TIME('2030-02-01 10:30:45');
Výsledek:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Časové hodnoty
Zde je příklad, který extrahuje čas z časové hodnoty:
SELECT TIME('10:30:45');
Výsledek:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Mikrosekundy
Zde je příklad, který zahrnuje mikrosekundy:
SELECT TIME('2030-02-01 10:30:45.123456');
Výsledek:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
Větší hodiny
TIME
hodnoty mohou být v rozsahu '-838:59:59.999999'
na '838:59:59.999999'
.
Hodinová část proto může být mnohem vyšší než 23
:
SELECT TIME('578:30:45');
Výsledek:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Záporné časy
Záporné časy jsou platné:
Příklad
SELECT TIME('-578:30:45');
Výsledek:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Otevírací doba mimo rozsah
Časové hodnoty mimo rozsah '-838:59:59.999999'
na '838:59:59.999999'
jsou ohraničeny na příslušné hranici a obsahují varování.
Příklad:
SELECT TIME('978:30:45');
Výsledek (při použití vertikálního výstupu):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Podívejme se na varování:
SHOW WARNINGS;
Výsledek (při použití vertikálního výstupu):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Aktuální datum
Můžeme předat NOW()
jako argument datetime pro použití aktuálního času:
SELECT
NOW(),
TIME(NOW());
Výsledek:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Neplatné argumenty
Při předání neplatného argumentu TIME()
vrátí null
s varováním:
SELECT TIME('Ten Thirty AM');
Výsledek:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Zkontrolujte varování:
SHOW WARNINGS;
Výsledek:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Chybí argument
Volání TIME()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT TIME();
Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
A další příklad:
SELECT TIME('10:30:45', '06:30:45');
Výsledek:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1