In MySQL das DATE_FORMAT()
Mit der Funktion können Sie das Datum und die Uhrzeit formatieren.
Hier ist ein Beispiel:
SELECT DATE_FORMAT('2018-12-01', '%W, %d %M %Y');
Ergebnis:
Saturday, 01 December 2018
In diesem Beispiel %W
steht für den Namen des Wochentags, %d
steht für den Tag des Monats, %M
steht für Monat und %Y
steht für Jahr. Es sind viele weitere Formatbezeichner verfügbar, mit denen Sie ein genaues Format für Datumsangaben sowie die Zeitkomponente angeben können.
Formatieren der Zeitkomponente
Hier ist ein Beispiel für die Formatierung der Zeitkomponente:
SELECT DATE_FORMAT('2018-12-01 11:03:15', '%H:%i:%s %p');
Ergebnis:
11:03:15 AM
In diesem Beispiel %p
wird verwendet, um entweder AM oder PM anzuzeigen, je nachdem, was der Fall ist.
Natürlich können Sie sie miteinander kombinieren, um sowohl das Datum als auch die Uhrzeit auf einmal zu formatieren:
SELECT DATE_FORMAT('2018-12-01 11:03:15', '%H:%i:%s %p, %W, %d %M %Y');
Ergebnis:
11:03:15 AM, Saturday, 01 December 2018
Formatieren mit einer Datums-/Zeitfunktion
Oft möchten Sie DATE_FORMAT()
verwenden zusammen mit einer weiteren Datums-/Uhrzeitfunktion. Sie könnten es beispielsweise zusammen mit CURDATE()
verwenden um das aktuelle Datum nett formatiert zurückzugeben:
SELECT CURDATE() AS Unformatted, DATE_FORMAT(CURDATE(), '%W, %M %d, %Y') AS Formatted;
Ergebnis:
+-------------+----------------------+ | Unformatted | Formatted | +-------------+----------------------+ | 2018-05-04 | Friday, May 04, 2018 | +-------------+----------------------+
Sie können dies auch mit dem NOW()
tun Funktion, wenn Sie die Zeit brauchen:
SELECT NOW() AS Unformatted, DATE_FORMAT(NOW(), '%r') AS Formatted;
Ergebnisse:
+---------------------+-------------+ | Unformatted | Formatted | +---------------------+-------------+ | 2018-05-04 14:33:52 | 02:33:52 PM | +---------------------+-------------+
Die TIME_FORMAT()-Funktion
MySQL hat auch ein TIME_FORMAT()
Funktion, mit der die Uhrzeit formatiert werden kann. Diese Funktion funktioniert ähnlich wie DATE_FORMAT()
außer dass TIME_FORMAT()
akzeptiert nur Formatbezeichner für Stunden, Minuten, Sekunden und Mikrosekunden.
Beispiel:
SET @time = '07:35:10'; SELECT TIME_FORMAT(@time, '%H') AS Hour, TIME_FORMAT(@time, '%i') AS Minute, TIME_FORMAT(@time, '%s') As Seconds, TIME_FORMAT(@time, '%p') AS 'AM or PM';
Ergebnisse:
+------+--------+---------+----------+ | Hour | Minute | Seconds | AM or PM | +------+--------+---------+----------+ | 07 | 35 | 10 | AM | +------+--------+---------+----------+
Die STR_TO_DATE()-Funktion
Das STR_TO_DATE()
Funktion ist die Umkehrung von DATE_FORMAT()
Funktion. Sie können damit eine Zeichenfolge angeben, die als Datum formatiert werden soll. Es akzeptiert zwei Parameter; die Zeichenfolge und das Format.
Hier ist ein Beispiel:
SELECT STR_TO_DATE('Saturday, 6 December 2018', '%W, %d %M %Y') AS Date;
Ergebnis:
+------------+ | Date | +------------+ | 2018-12-06 | +------------+
So finden Sie das richtige Datumsformat
MySQL hat eine praktische kleine Funktion namens GET_FORMAT()
. Diese Funktion hilft Ihnen, das richtige Format zu finden, wenn Sie DATE_FORMAT()
verwenden Funktion und/oder die STR_TO_DATE()
Funktion .
So funktioniert es:
SELECT GET_FORMAT(DATE, 'USA');
Daraus ergibt sich Folgendes:
%m.%d.%Y
Das sagt uns die Formatzeichenfolge, die wir verwenden müssen, wenn wir ein Datum mit DATE_FORMAT()
formatieren Funktion. Beispielsweise könnten wir die Ergebnisse aus diesem Beispiel nehmen und sie auf DATE_FORMAT()
anwenden Funktion:
SELECT DATE_FORMAT(NOW(), '%m.%d.%Y');
Und wir würden mit dem gewünschten Ergebnis enden:
05.04.2018
Sie können auch GET_FORMAT()
übergeben direkt an DATE_FORMAT()
wenn Sie es vorziehen.
SELECT DATE_FORMAT(NOW(), GET_FORMAT(DATE, 'USA'));
Ergebnis:
05.04.2018
In jedem Fall finden Sie unten Beispiele mit verschiedenen Optionen.
Datum
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 | +----------+----------+----------+----------+----------+
DatumUhrzeit
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 | +-------------------+-------------------+-------------------+-------------------+--------------+
Zeit
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 | +-------------+----------+----------+----------+----------+