In MySQL können Sie das GET_FORMAT()
verwenden -Funktion, um eine Formatzeichenfolge für die bereitgestellten Argumente zurückzugeben. Dies kann nützlich sein, wenn Sie eine Formatzeichenfolge für eine andere Funktion bereitstellen müssen, z. B. DATE_FORMAT()
oder STR_TO_DATE()
.
Syntax
Die offizielle Syntax lautet wie folgt:
GET_FORMAT({DATE|TIME|DATETIME}, {'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL'})
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel, um zu demonstrieren, wie es funktioniert.
SELECT GET_FORMAT(DATE,'USA');
Ergebnis:
+------------------------+ | GET_FORMAT(DATE,'USA') | +------------------------+ | %m.%d.%Y | +------------------------+
Dieses Beispiel gibt also die Formatzeichenfolge für USA zurück. Wir können diese Formatzeichenfolge nun nehmen und sie in verschiedenen Datumsformatierungsfunktionen verwenden.
So:
SELECT DATE_FORMAT('2020-03-07', '%m.%d.%Y') AS 'Formatted';
Ergebnis:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Wir können diese Funktion aber auch direkt an DATE_FORMAT()
übergeben Funktion. So:
SELECT DATE_FORMAT('2020-03-07', GET_FORMAT(DATE,'USA')) AS 'Formatted';
Ergebnis:
+------------+ | Formatted | +------------+ | 03.07.2020 | +------------+
Das erspart uns also, uns merken zu müssen, welche Formatzeichenfolge verwendet werden soll – GET_FORMAT()
erledigt das für uns.
Beispiel 2 – Datumswerte
Dieses Beispiel listet alle Variationen des zweiten Arguments auf, wenn das erste Argument DATE
ist .
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';
Ergebnis:
+----------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +----------+----------+----------+----------+----------+ | %m.%d.%Y | %Y-%m-%d | %Y-%m-%d | %d.%m.%Y | %Y%m%d | +----------+----------+----------+----------+----------+
Beispiel 3 – Datetime-Werte
Dieses Beispiel listet alle Variationen des zweiten Arguments auf, wenn das erste Argument DATETIME
ist .
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';
Ergebnis:
+-------------------+-------------------+-------------------+-------------------+--------------+ | 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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Beispiel 4 – Zeitwerte
Dieses Beispiel listet alle Variationen des zweiten Arguments auf, wenn das erste Argument TIME
ist .
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';
Ergebnis:
+-------------+----------+----------+----------+----------+ | USA | JIS | ISO | EUR | INTERNAL | +-------------+----------+----------+----------+----------+ | %h:%i:%s %p | %H:%i:%s | %H:%i:%s | %H.%i.%s | %H%i%s | +-------------+----------+----------+----------+----------+
Einheitenspezifizierer
Der zurückgegebene Formatstring kann aus einer beliebigen Kombination der folgenden Spezifizierer bestehen.
Bezeichner | Beschreibung |
---|---|
%a | Abgekürzter Name des Wochentags (Sun ..Sat ) |
%b | Abgekürzter Monatsname (Jan ..Dec ) |
%c | Monat, numerisch (0 ..12 ) |
%D | Tag des Monats mit englischem Suffix (0th , 1st , 2nd , 3rd , …) |
%d | Tag des Monats, numerisch (00 ..31 ) |
%e | Tag des Monats, numerisch (0 ..31 ) |
%f | Mikrosekunden (000000 ..999999 ) |
%H | Stunde (00 ..23 ) |
%h | Stunde (01 ..12 ) |
%I | Stunde (01 ..12 ) |
%i | Minuten, numerisch (00 ..59 ) |
%j | Tag des Jahres (001 ..366 ) |
%k | Stunde (0 ..23 ) |
%l | Stunde (1 ..12 ) |
%M | Monatsname (January ..Dec ) |
%m | Monat, numerisch (00 ..12 ) |
%p | AM oder PM |
%r | Zeit, 12 Stunden (hh:mm:ss gefolgt von AM oder PM ) |
%S | Sekunden (00 ..59 ) |
%s | Sekunden (00 ..59 ) |
%T | Uhrzeit, 24 Stunden (hh:mm:ss ) |
%U | Woche (00 ..53 ), wobei Sonntag der erste Tag der Woche ist; WEEK() Modus 0 |
%u | Woche (00 ..53 ), wobei Montag der erste Tag der Woche ist; WEEK() Modus 1 |
%V | Woche (01 ..53 ), wobei Sonntag der erste Tag der Woche ist; WEEK() Modus 2; verwendet mit %X |
%v | Woche (01 ..53 ), wobei Montag der erste Tag der Woche ist; WEEK() Modus 3; verwendet mit %x |
%W | Name des Wochentags (Sunday ..Saturday ) |
%w | Wochentag (0 =Sonntag..6 =Samstag) |
%X | Jahr für die Woche, in der Sonntag der erste Wochentag ist, numerisch, vierstellig; verwendet mit %V |
%x | Jahr für die Woche, wobei Montag der erste Tag der Woche ist, numerisch, vierstellig; verwendet mit %v |
%Y | Jahr, numerisch, vierstellig |
%y | Jahr, numerisch (zweistellig) |
%% | Ein Literal % Charakter |
% | x , für jeden „x ” oben nicht aufgeführt |