sql >> Databáze >  >> RDS >> MariaDB

Jak funguje TIME_FORMAT() v MariaDB

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'

  1. 3 způsoby, jak najít řádky, které obsahují malá písmena v SQLite

  2. Jak přepnout databázi pomocí PostgreSQL

  3. Změna hesla root MySQL

  4. Výukové programy pro databázovou poštu