V MariaDB, TIME_FORMAT()
je vestavěná funkce data a času, která formátuje hodnotu času podle daného formátovacího řetězce.
Funguje podobně jako DATE_FORMAT()
kromě toho, že formátovací řetězec může obsahovat pouze specifikátory formátu pro hodiny, minuty a sekundy.
Vyžaduje to dva argumenty; čas a formátovací řetězec.
Syntaxe
Syntaxe vypadá takto:
TIME_FORMAT(time,format)
Kde time
je hodnota času a format
je formátovací řetězec. Seznam přijatelných specifikátorů formátu najdete v části MariaDB Format Strings. Jak již bylo zmíněno, akceptovány jsou pouze specifikátory formátu pro hodiny, minuty a sekundy. Všechny ostatní hodnoty vrátí null
.
Příklad
Zde je příklad:
SELECT TIME_FORMAT('10:30:45', '%H %i %S');
Výsledek:
+-------------------------------------+| TIME_FORMAT('10:30:45', '%H %i %S') |+------------------------------ --------+| 10 30 45 |+-------------------------------------+
Tady je to znovu, ale tentokrát poskytujeme propracovanější formátovací řetězec:
SELECT TIME_FORMAT(
'10:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Výsledek:
+--------------------------------------+| Výsledek |+--------------------------------------+| 10 hodin, 30 minut a 45 sekund |+--------------------------------------+
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_FORMAT(
'810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Výsledek:
+---------------------------------------+| Výsledek |+---------------------------------------+| 810 hodin, 30 minut a 45 sekund |+--------------------------------------- +
Záporné časové hodnoty
Zde je příklad se zápornou časovou hodnotou:
SELECT TIME_FORMAT(
'-810:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Výsledek:
+----------------------------------------+| Výsledek |+----------------------------------------+| -810 hodin, 30 minut a 45 sekund |+--------------------------------------- --+
Doby mimo rozsah
Pokud však zadáte hodnotu času mimo rozsah, vrátí se horní hranice tohoto rozsahu spolu s varováním:
SELECT TIME_FORMAT(
'910:30:45',
'%H hours, %i minutes, and %S seconds'
)
AS Result;
Výsledek:
+---------------------------------------+| Výsledek |+---------------------------------------+| 838 hodin, 59 minut a 59 sekund |+--------------------------------------- +1 řádek v sadě, 1 varování (0,003 s)
Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+----------------------------- -----------------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ ----------------+| Upozornění | 1292 | Zkrácená nesprávná časová hodnota:'910:30:45' |+---------+------+------------------- --------------------------+
Neplatné argumenty
Po předání neplatných argumentů TIME_FORMAT()
vrátí null
s varováním:
SELECT TIME_FORMAT('Homer', 'Simpson');
Výsledek:
+---------------------------------+| TIME_FORMAT('Homer', 'Simpson') |+---------------------------------+| NULL |+---------------------------------+1 řádek v sadě, 1 varování (0,009 s)Zkontrolujte varování:
SHOW WARNINGS;
Výsledek:
+---------+------+----------------------------- --+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ -+| Upozornění | 1292 | Nesprávná hodnota času:'Homer' |+---------+------+------------------------ -------+Neplatný formátovací řetězec
Formátovací řetězec může obsahovat pouze specifikátory formátu pro hodiny, minuty a sekundy. Jakékoli další specifikátory formátu mají za následek
null
se vrací:SELECT TIME_FORMAT('10:30:45', '%M %W');
Výsledek:
+----------------------------------+| TIME_FORMAT('10:30:45', '%M %W') |+------------------------------- ---+| NULL |+----------------------------------+Chybí argument
Volání
TIME_FORMAT()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:SELECT TIME_FORMAT();
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'TIME_FORMAT'A další příklad:
SELECT TIME_FORMAT('10:09:10');
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'TIME_FORMAT'