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