V MariaDB GET_FORMAT()
je vestavěná funkce data a času, která vrací formátovací řetězec.
Tato funkce může být užitečná při práci s funkcemi, které vyžadují formátovací řetězec, jako je DATE_FORMAT()
a STR_TO_DATE()
.
Syntaxe
Syntaxe vypadá takto:
GET_FORMAT({DATE|DATETIME|TIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Příklad
Zde je příklad:
SELECT GET_FORMAT(DATE, 'EUR');
Výsledek:
+-------------------------+| GET_FORMAT(DATE, 'EUR') |+-------------------------+| %d.%m.%Y |+-------------------------+
To nám ukazuje formát, který se má použít při práci s daty ve formátu EUR.
Zde je další příklad. Tentokrát vrátíme řetězec formátu ISO pro datum a čas:
SELECT GET_FORMAT(DATETIME, 'ISO');
Výsledek:
+-----------------------------+| GET_FORMAT(DATETIME, 'ISO') |+-----------------------------+| %Y-%m-%d %H:%i:%s |+-----------------------------+Pomocí
DATE_FORMAT()
V tomto příkladu používám
GET_FORMAT()
jako druhý argument proDATE_FORMAT()
funkce. To mi umožňuje formátovat datum, aniž bych si musel pamatovat skutečný formátovací řetězec, který mám použít.SELECT DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA'));
Výsledek:
+---------------------------------------------- -----+| DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA')) |+------------------------------ -----------------------+| 25.08.2030 |+--------------------------------------------- ------+Možné formátovací řetězce
Zde je tabulka možných formátovacích řetězců:
Argumenty | Výsledný formát |
---|---|
DATE, 'EUR' | ‘%d.%m.%Y’ |
DATE, 'USA' | ‘%m.%d.%Y’ |
DATE, 'JIS' | „%Y-%m-%d“ |
DATE, 'ISO' | „%Y-%m-%d“ |
DATE, 'INTERNAL' | ‘%Y%m%d’ |
DATETIME, 'EUR' | ‘%Y-%m-%d %H.%i.%s’ |
DATETIME, 'USA' | ‘%Y-%m-%d %H.%i.%s’ |
DATETIME, 'JIS' | ‘%Y-%m-%d %H:%i:%s’ |
DATETIME, 'ISO' | ‘%Y-%m-%d %H:%i:%s’ |
DATETIME, 'INTERNAL' | ‘%Y%m%d%H%i%s’ |
TIME, 'EUR' | ‘%H.%i.%s’ |
TIME, 'USA' | ‘%h:%i:%s %p’ |
TIME, 'JIS' | „%H:%i:%s“ |
TIME, 'ISO' | „%H:%i:%s“ |
TIME, 'INTERNAL' | ‘%H%i%s’ |
Chybí argument
Volání GET_FORMAT()
s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:
SELECT GET_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 1
A další příklad:
SELECT GET_FORMAT( DATE, 'JIS', 'OOPS' );
Výsledek:
ERROR 1064 (42000):Máte chybu v syntaxi SQL; podívejte se do příručky, která odpovídá verzi vašeho serveru MariaDB, kde najdete správnou syntaxi, která se má použít poblíž ''OOPS' )' na řádku 1