W MariaDB, GET_FORMAT()
to wbudowana funkcja daty i czasu, która zwraca ciąg formatu.
Ta funkcja może być przydatna podczas pracy z funkcjami, które wymagają ciągu formatu, na przykład DATE_FORMAT()
i STR_TO_DATE()
.
Składnia
Składnia wygląda tak:
GET_FORMAT({DATE|DATETIME|TIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Przykład
Oto przykład:
SELECT GET_FORMAT(DATE, 'EUR');
Wynik:
+-------------------------+ | GET_FORMAT(DATE, 'EUR') | +-------------------------+ | %d.%m.%Y | +-------------------------+
To pokazuje nam format, który ma być używany podczas pracy z datami w formacie EUR.
Oto kolejny przykład. Tym razem zwracamy ciąg formatu ISO dla daty i godziny:
SELECT GET_FORMAT(DATETIME, 'ISO');
Wynik:
+-----------------------------+ | GET_FORMAT(DATETIME, 'ISO') | +-----------------------------+ | %Y-%m-%d %H:%i:%s | +-----------------------------+
Z DATE_FORMAT()
W tym przykładzie używam GET_FORMAT()
jako drugi argument funkcji DATE_FORMAT()
funkcjonować. Dzięki temu mogę sformatować datę bez konieczności zapamiętywania właściwego ciągu formatującego.
SELECT DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA'));
Wynik:
+---------------------------------------------------+ | DATE_FORMAT('2030-08-25', GET_FORMAT(DATE,'USA')) | +---------------------------------------------------+ | 08.25.2030 | +---------------------------------------------------+
Możliwe ciągi formatujące
Oto tabela możliwych ciągów formatujących:
Argumenty | Wynikowy format |
---|---|
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' |
Brakujący argument
Wywołanie GET_FORMAT()
z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT GET_FORMAT();
Wynik:
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
I kolejny przykład:
SELECT GET_FORMAT( DATE, 'JIS', 'OOPS' );
Wynik:
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 ' 'OOPS' )' at line 1