W MySQL możesz użyć GET_FORMAT()
funkcja zwracająca ciąg formatu dla podanych argumentów. Może to być przydatne, gdy musisz podać ciąg formatu do innej funkcji, takiej jak DATE_FORMAT()
lub STR_TO_DATE()
.
Składnia
Oficjalna składnia wygląda następująco:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Przykład 1 – Podstawowe użycie
Oto przykład pokazujący, jak to działa.
SELECT GET_FORMAT(DATE,'USA');
Wynik:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Więc ten przykład zwraca ciąg formatu dla USA. Możemy teraz wziąć ten ciąg formatujący i używać go w różnych funkcjach formatowania daty.
Tak:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Wynik:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Możemy jednak również przekazać tę funkcję bezpośrednio do DATE_FORMAT()
funkcjonować. Tak:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Wynik:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Dzięki temu nie musimy pamiętać, jakiego ciągu formatu użyć — GET_FORMAT()
robi to dla nas.
Przykład 2 – Wartości dat
W tym przykładzie wymieniono wszystkie odmiany drugiego argumentu, gdy pierwszym argumentem jest DATE
.
SELECT GET_FORMAT(DATE,'USA') AS 'USA', GET_FORMAT(DATE,'JIS') AS 'JIS', GET_FORMAT(DATE,'ISO') AS 'ISO', GET_FORMAT(DATE,'EUR') AS 'EUR', GET_FORMAT(DATE,'INTERNAL') AS 'INTERNAL';
Wynik:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Przykład 3 – Wartości daty i godziny
W tym przykładzie wymieniono wszystkie odmiany drugiego argumentu, gdy pierwszym argumentem jest DATETIME
.
SELECT GET_FORMAT(DATETIME,'USA') AS 'USA', GET_FORMAT(DATETIME,'JIS') AS 'JIS', GET_FORMAT(DATETIME,'ISO') AS 'ISO', GET_FORMAT(DATETIME,'EUR') AS 'EUR', GET_FORMAT(DATETIME,'INTERNAL') AS 'INTERNAL';
Wynik:
+-------------------+-------------------+-------------------+-------------------+--------------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------------+-------------------+-------------------+-------------------+--------------+ | %Y-%m-%d %H.%i.%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H:%i:%s | %Y-%m-%d %H.%i.%s | %Y%m%d%H%i%s | +-------------------+-------------------+-------------------+-------------------+--------------+
Przykład 4 – Wartości czasu
W tym przykładzie wymieniono wszystkie odmiany drugiego argumentu, gdy pierwszym argumentem jest TIME
.
SELECT GET_FORMAT(TIME,'USA') AS 'USA', GET_FORMAT(TIME,'JIS') AS 'JIS', GET_FORMAT(TIME,'ISO') AS 'ISO', GET_FORMAT(TIME,'EUR') AS 'EUR', GET_FORMAT(TIME,'INTERNAL') AS 'INTERNAL';
Wynik:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Specyfikatory jednostek
Zwrócony ciąg formatu może składać się z dowolnej kombinacji następujących specyfikatorów.
Specyfikator | Opis |
---|---|
%a | Skrócona nazwa dnia tygodnia (Sun ..Sat ) |
%b | Skrócona nazwa miesiąca (Jan ..Dec ) |
%c | Miesiąc, numeryczny (0th ..12 ) |
%D | Dzień miesiąca z angielskim sufiksem (0th , 1st , 2nd , 3rd , …) |
%d | Dzień miesiąca, numeryczny (00 ..31 ) |
%e | Dzień miesiąca, numeryczny (0th ..31 ) |
%f | Mikrosekundy (000000 ..999999 ) |
%H | Godzina (00 ..23 ) |
%h | Godzina (01 ..12 ) |
%I | Godzina (01 ..12 ) |
%i | Minuty, numeryczne (00 ..59 ) |
%j | Dzień roku (001 ..366 ) |
%k | Godzina (0th ..23 ) |
%l | Godzina (1 ..12 ) |
%M | Nazwa miesiąca (January ..December ) |
%m | Miesiąc, numerycznie (00 ..12 ) |
%p | AM lub PM |
%r | Czas, 12 godzin (hh:mm:ss po którym następuje AM lub PM ) |
%S | Sekundy (00 ..59 ) |
%s | Sekundy (00 ..59 ) |
%T | Czas, 24 godziny (hh:mm:ss ) |
%U | Tydzień (00 ..53 ), gdzie niedziela jest pierwszym dniem tygodnia; WEEK() tryb 0 |
%u | Tydzień (00 ..53 ), gdzie poniedziałek to pierwszy dzień tygodnia; WEEK() tryb 1 |
%V | Tydzień (01 ..53 ), gdzie niedziela jest pierwszym dniem tygodnia; WEEK() tryb 2; używane z %X |
%v | Tydzień (01 ..53 ), gdzie poniedziałek to pierwszy dzień tygodnia; WEEK() tryb 3; używane z %x |
%W | Nazwa dnia tygodnia (Sunday ..Saturday ) |
%w | Dzień tygodnia (0th =Niedziela...6 =Sobota) |
%X | Rok tygodnia, w którym niedziela jest pierwszym dniem tygodnia, numeryczna, cztery cyfry; używane z %V |
%x | Rok tygodnia, gdzie poniedziałek to pierwszy dzień tygodnia, numeryczny, cztery cyfry; używane z %v |
%Y | Rok, numerycznie, cztery cyfry |
%y | Rok, numeryczny (dwie cyfry) |
%% | Dosłowny % znak |
% | x , dla każdego „x ” nie wymienione powyżej |