V MariaDB, DATE_FORMAT()
je vestavěná funkce data a času, která formátuje datum podle daného formátovacího řetězce.
Vyžaduje to dva argumenty; datum a formátovací řetězec. Přijímá také volitelný třetí argument, který vám umožňuje určit národní prostředí.
Syntaxe
Syntaxe vypadá takto:
DATE_FORMAT(date, format[, locale])
Kde date
je datum, format
je formátovací řetězec (viz akceptované specifikátory formátu) a locale
je volitelné národní prostředí, které se má použít pro vrácený formát.
Příklad
Zde je příklad:
SELECT DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y');
Výsledek:
+---------------------------------------------- ------+| DATE_FORMAT('2030-01-25 10:30:45', '%W, %D %M %Y') |+---------------------- -------------------------------+| Pátek, 25. ledna 2030 |+-------------------------------------------- ---------+
Tady je to znovu, ale tentokrát pomocí %r
vrátit čas vrácený ve 12hodinovém formátu:
SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r');
Výsledek:
+------------------------------------------+| DATE_FORMAT('2030-01-25 10:30:45', '%r') |+----------------------------- ---------------+| 10:30:45 |+------------------------------------------ +
Můžeme je kombinovat, takže získáme čas a datum:
SELECT DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y');
Výsledek:
+---------------------------------------------- ---------+| DATE_FORMAT('2030-01-25 10:30:45', '%r %W, %D %M %Y') |+------------------- ------------------------------------+| 10:30:45 pátek, 25. ledna 2030 |+-------------------------------------- ------------------+
Jazyk názvů měsíců, dnů atd. je určen pomocí lc_time_names
systémová proměnná. Výchozí hodnota je vždy en_US
bez ohledu na místní nastavení systému. Zde je návod, jak zobrazit své aktuální nastavení.
Argument národního prostředí
Počínaje MariaDB 10.3.2 lze k určení národního prostředí použít volitelný třetí argument. Když je toto specifikováno, funkce je nezávislá na nastavení relace.
SELECT DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR');
Výsledek:
+---------------------------------------------- ------+| DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'es_PR') |+----------------------- ------------------------------+| viernes, 25. enero 2030 |+-------------------------------------------- ---------+
Zde jsou některé další lokality:
SELECT
DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'fr_FR') AS fr_FR,
DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'hr_HR') AS hr_HR,
DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'ms_MY') AS fr_FR,
DATE_FORMAT('2030-01-25', '%W, %D %M %Y', 'th_TH') AS th_TH;
Výsledek:
fr_FR:vendredi, 25. leden 2030 hod_HR:Petak, 25. Siječanj 2030fr_FR:Jumaat, 25. ledna 2030._TH:ศุกร์, 25. รมคpre>V tomto případě je poslední thajština, a přestože používá thajské znaky pro název měsíce a název dne, nemění rok na thajský kalendář. Rok 2030 by při použití thajského kalendáře byl 2573. Předpokládám tedy, že pokud chcete použít thajský rok, pak datum, které projdete, již bude používat thajský rok.
Aktuální datum
Zde předáme
NOW()
jako argument data pro formátování aktuálního data:SELECT DATE_FORMAT(NOW(), '%r %W, %D %M %Y');
Výsledek:
+---------------------------------------+| DATE_FORMAT(NOW(), '%r %W, %D %M %Y') |+---------------------------- -----------+| 09:53:00 Úterý, 11. května 2021 |+-------------------------------------- --+Neplatné argumenty
Po předání neplatných argumentů
DATE_FORMAT()
vrátínull
:SELECT DATE_FORMAT('Homer', 'Simpson');
Výsledek:
+---------------------------------+| DATE_FORMAT('Homer', 'Simpson') |+---------------------------------+| NULL |+---------------------------------+Chybí argument
Volání
DATE_FORMAT()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:SELECT DATE_FORMAT();
Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi blízko ')' na řádku 1A další příklad:
SELECT DATE_FORMAT('2030-05-21');
Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do manuálu, který odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi blízko ')' na řádku 1
GET_FORMAT()
FunkceMůžete také použít
GET_FORMAT()
funkce ve druhém argumentuDATE_FORMAT()
. To vrátí celý formátovací řetězec pro daný formát data, což vám ušetří, že si nebudete muset pamatovat formátovací řetězec, který chcete použít.