Beim Umgang mit Datumsdaten in SQL ist es oft notwendig, die Daten in einem bestimmten Format anzuzeigen. Mit der DATE_FORMAT()-Funktion von MySQL können Sie Datumsdaten einfach in verschiedene Formate umwandeln. Dieser Artikel bietet eine ausführliche Erklärung, wie Sie die DATE_FORMAT()-Funktion verwenden können, von der grundlegenden Nutzung bis hin zu fortgeschrittenen Beispielen.
Grundlegende Verwendung der DATE_FORMAT()-Funktion
Die DATE_FORMAT()-Funktion wird verwendet, um Datumsdaten in ein bestimmtes Format zu konvertieren. Die grundlegende Syntax lautet wie folgt:
DATE_FORMAT(date, format)
date
: Die Datumsdaten, die Sie umformatieren möchtenformat
: Das gewünschte Format
Um beispielsweise das Datum 2024-05-23
vom Format YYYY-MM-DD
in das Format MM/DD/YYYY
zu konvertieren, würde die SQL-Abfrage wie folgt aussehen:
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
Das Ergebnis dieser Abfrage wird 05/23/2024
sein. Als Nächstes werfen wir einen genaueren Blick auf die Formatbezeichner, die mit der DATE_FORMAT()-Funktion verwendet werden können.
Liste der Formatbezeichner
Die DATE_FORMAT()-Funktion kann Daten mit verschiedenen Formatbezeichnern anzeigen. Hier sind die wichtigsten Formatbezeichner:
Datumsbezogene Formatbezeichner
%Y
: Vierstellige Jahreszahl (z.B. 2024)%y
: Zweistellige Jahreszahl (z.B. 24)%m
: Zweistelliger Monat (01-12)%c
: Monat (1-12)%d
: Zweistelliger Tag (01-31)%e
: Tag (1-31)
Zeitbezogene Formatbezeichner
%H
: Zweistellige Stunde im 24-Stunden-Format (00-23)%k
: Stunde im 24-Stunden-Format (0-23)%h
: Zweistellige Stunde im 12-Stunden-Format (01-12)%I
: Stunde im 12-Stunden-Format (01-12)%l
: Stunde im 12-Stunden-Format (1-12)%i
: Zweistellige Minuten (00-59)%s
: Zweistellige Sekunden (00-59)%p
: AM oder PM
Andere Formatbezeichner
%W
: Wochentagsname (z.B. Sonntag)%a
: Abgekürzter Wochentagsname (z.B. So)%M
: Monatsname (z.B. Januar)%b
: Abgekürzter Monatsname (z.B. Jan)%j
: Tag des Jahres (001-366)
Durch die Kombination dieser Bezeichner können Sie Daten in verschiedenen Formaten anzeigen. Als nächstes schauen wir uns einige spezifische Anwendungsbeispiele mit diesen Bezeichnern an.
Praktische Beispiele
Hier sind einige Beispiele, wie Sie Datumsdaten mithilfe der DATE_FORMAT()-Funktion in verschiedene Formate umwandeln können.
Beispiel 1: Ändern des Standarddatumsformats
Im folgenden Beispiel wird das Datum 2024-05-23
in das Format MM/DD/YYYY
umgewandelt.
SELECT DATE_FORMAT('2024-05-23', '%m/%d/%Y') AS formatted_date;
Ergebnis: 05/23/2024
Beispiel 2: Nur Monat und Jahr anzeigen
Dieses Beispiel extrahiert und zeigt den Monat und das Jahr aus den Datumsdaten an.
SELECT DATE_FORMAT('2024-05-23', '%M %Y') AS formatted_date;
Ergebnis: Mai 2024
Beispiel 3: Datum und Wochentag anzeigen
Dieses Beispiel konvertiert das Datum in ein Format, das das Datum und den Namen des Wochentages enthält.
SELECT DATE_FORMAT('2024-05-23', '%W, %M %d, %Y') AS formatted_date;
Ergebnis: Donnerstag, 23. Mai 2024
Beispiel 4: Zeitdaten formatieren
Dieses Beispiel konvertiert Zeitdaten in das Format HH:MM AM/PM
.
SELECT DATE_FORMAT('2024-05-23 14:30:00', '%h:%i %p') AS formatted_time;
Ergebnis: 02:30 PM
Beispiel 5: Vollständige Zeitstempel anzeigen
Dieses Beispiel ändert das Format eines vollständigen Zeitstempels, der sowohl das Datum als auch die Zeit enthält.
SELECT DATE_FORMAT('2024-05-23 14:30:00', '%Y-%m-%d %H:%i:%s') AS formatted_timestamp;
Ergebnis: 2024-05-23 14:30:00
Verwenden Sie diese Beispiele als Referenz, um Datumsdaten in das erforderliche Format zu konvertieren. Als nächstes schauen wir uns fortgeschrittene Beispiele zur Verwendung der DATE_FORMAT()-Funktion an.
Fortgeschrittene Beispiele
Durch die Nutzung der DATE_FORMAT()-Funktion können komplexere Anforderungen erfüllt werden. Hier sind einige Beispiele, die mehrere Spalten und bedingte Formatänderungen beinhalten.
Beispiel 1: Formatieren von Daten mit mehreren Spalten
Dieses Beispiel zeigt, wie Sie mehrere Datumsspalten in verschiedenen Formaten anzeigen können.
SELECT
DATE_FORMAT(order_date, '%Y-%m-%d') AS formatted_order_date,
DATE_FORMAT(delivery_date, '%M %d, %Y') AS formatted_delivery_date
FROM orders;
Diese Abfrage zeigt order_date
im Format YYYY-MM-DD
und delivery_date
im Format Monat TT, JJJJ
an.
Beispiel 2: Bedingte Formatänderung
Dieses Beispiel zeigt, wie Sie das Format basierend auf einer Bedingung ändern können. Hier ändert sich das Datumsformat basierend auf dem Wert der status
-Spalte.
SELECT
order_id,
status,
CASE
WHEN status = 'shipped' THEN DATE_FORMAT(ship_date, '%M %d, %Y')
ELSE DATE_FORMAT(order_date, '%Y-%m-%d')
END AS formatted_date
FROM orders;
Diese Abfrage zeigt ship_date
im Format Monat TT, JJJJ
an, wenn der status
shipped
ist; andernfalls wird order_date
im Format YYYY-MM-DD
angezeigt.
Beispiel 3: Formatieren dynamisch erzeugter Daten
Dieses Beispiel zeigt, wie Sie das aktuelle Datum dynamisch erzeugen und formatieren können.
SELECT DATE_FORMAT(NOW(), '%W, %M %d, %Y %h:%i %p') AS current_datetime;
Diese Abfrage zeigt das aktuelle Datum und die aktuelle Uhrzeit im Format Wochentag, Monat Tag, Jahr Stunde:Minute AM/PM
an.
Beispiel 4: Lokalspezifisches Datumsformat
Dieses Beispiel zeigt, wie Sie Daten gemäß lokalspezifischen Formaten anzeigen können. Zum Beispiel die Anzeige von Daten im japanischen Lokalformat.
SELECT DATE_FORMAT(order_date, '%Y年%m月%d日') AS formatted_date_jp
FROM orders;
Diese Abfrage zeigt order_date
im japanischen Lokalformat YYYY年MM月DD日
an.
Verwenden Sie diese fortgeschrittenen Beispiele als Leitfaden, um die DATE_FORMAT()-Funktion flexibel zu nutzen. Als nächstes fassen wir die wichtigsten Punkte der Verwendung der DATE_FORMAT()-Funktion zusammen und geben Tipps für die praktische Anwendung.
Zusammenfassung
Die DATE_FORMAT()-Funktion ist ein leistungsstarkes Werkzeug in MySQL, um das Format von Datumsdaten flexibel zu ändern. Von der grundlegenden Verwendung bis hin zu detaillierten Formatbezeichnern, praktischen Beispielen und fortgeschrittenen Anwendungsfällen haben Sie gelernt, wie Sie Datumsdaten frei manipulieren können. Hier sind die wichtigsten Punkte:
Wichtige Punkte der DATE_FORMAT()-Funktion
- Grundlegende Syntax: Verwenden Sie
DATE_FORMAT(date, format)
, um ein Datum in ein bestimmtes Format zu konvertieren. - Formatbezeichner: Kombinieren Sie verschiedene Bezeichner für Jahr, Monat, Tag, Zeit, Wochentag usw. für vielseitige Anzeigeoptionen.
- Praktische Beispiele: Standard-Datumsformatänderungen und spezifische Zeitanzeigen.
- Fortgeschrittene Beispiele: Formatänderungen für mehrere Spalten, bedingte Formatänderungen, dynamisch erzeugte Daten und lokalspezifische Anzeigen.
Durch das Beherrschen der DATE_FORMAT()-Funktion können Sie Datumsdaten, die aus der Datenbank abgerufen werden, in einem lesbaren Format präsentieren und die Qualität von Anwendungen und Berichten verbessern. Nutzen Sie diese Funktion in Ihren täglichen Datenoperationen und Analysen.