MySQL DATE_FORMAT erklärt: Daten und Zeiten formatieren – mit Beispielen

1. Einführung

In MySQL‑Datenbanken arbeiten Sie häufig mit Datums‑ und Zeitdaten. In einer Datenbank gespeicherte Daten werden in Standardformaten abgelegt, aber bei der Anzeige für Benutzer möchten Sie sie oft umformatieren, um die Lesbarkeit zu verbessern. Hier kommt die DATE_FORMAT‑Funktion ins Spiel. In diesem Artikel stellen wir die Verwendung der DATE_FORMAT‑Funktion und verschiedener Formatierungsoptionen vor und erklären praktische Anwendungsmöglichkeiten anhand realer Beispiele.

2. Überblick über die DATE_FORMAT‑Funktion

2.1 Was ist die DATE_FORMAT‑Funktion?

Die DATE_FORMAT‑Funktion ist eine MySQL‑Funktion, die Datumswerte in ein angegebenes Format konvertiert. Sie wird verwendet, wenn Sie Datumsangaben in einem beliebigen Format ausgeben möchten, anstatt des Standard‑YYYY‑MM‑DD‑Formats oder des üblichen Datetime‑Formats. Wenn Sie beispielsweise ein Datum für Benutzer im Format „Sep 16, 2024“ anzeigen wollen, ist diese Funktion sehr hilfreich.

2.2 Grundsyntax

Die Grundsyntax der DATE_FORMAT‑Funktion lautet wie folgt.

DATE_FORMAT(date, format)
  • date : Die Datumsdaten, die Sie formatieren möchten.
  • format : Eine Zeichenkette, die das Ausgabeformat des Datums angibt.

Betrachten wir ein konkretes Beispiel:

SELECT DATE_FORMAT('2024-09-16', '%Y-%m-%d') AS formatted_date;

Diese Abfrage konvertiert das Datum ’2024-09-16′ in das Format „2024-09-16“ und gibt es aus.

3. Datumsformat‑Parameter

3.1 Liste der Formatbezeichner

Die DATE_FORMAT‑Funktion unterstützt viele Formatbezeichner. Nachfolgend eine Liste der häufig genutzten:

  • %Y : 4‑stelliges Jahr (z. B. 2024)
  • %y : 2‑stelliges Jahr (z. B. 24)
  • %m : 2‑stelliger Monat (01 bis 12)
  • %c : Monat (1 bis 12)
  • %d : 2‑stelliger Tag (01 bis 31)
  • %e : Tag (1 bis 31)
  • %H : Stunde im 24‑Stunden‑Format (00 bis 23)
  • %h oder %I : Stunde im 12‑Stunden‑Format (01 bis 12)
  • %i : Minuten (00 bis 59)
  • %s : Sekunden (00 bis 59)
  • %p : AM oder PM

3.2 Praktische Beispiele

Sehen wir uns konkrete Beispiele an, wie diese Bezeichner die Ausgabe beeinflussen.

SELECT 
    DATE_FORMAT('2024-09-16 14:35:59', '%Y-%m-%d %H:%i:%s') AS full_format,
    DATE_FORMAT('2024-09-16 14:35:59', '%b %d, %Y') AS us_format,
    DATE_FORMAT('2024-09-16 14:35:59', '%d/%m/%Y') AS european_format,
    DATE_FORMAT('2024-09-16 14:35:59', '%h:%i %p') AS twelve_hour_format;

Die Ausgabe dieser Abfrage sieht folgendermaßen aus:

  • full_format : 2024-09-16 14:35:59
  • us_format : Sep 16, 2024
  • european_format : 16/09/2024
  • twelve_hour_format : 02:35 PM

4. Praktische Anwendungsfälle

4.1 Szenario 1: Berichtserstellung

Wenn beispielsweise monatliche Berichte in einem Unternehmen erstellt werden, möchte man Datumsangaben im Stil „YYYY‑MM“ darstellen. Die folgende Abfrage formatiert Berichtsdaten zu diesem Zweck.

SELECT 
    DATE_FORMAT(sale_date, '%Y-%m') AS report_month,
    SUM(sales) AS total_sales
FROM sales_data
GROUP BY report_month;

Diese Abfrage gibt den gesamten Monatsumsatz aus den Verkaufsdaten im Format „2024-09“ aus.

4.2 Szenario 2: Benutzeroberfläche

DATE_FORMAT ist auch nützlich, wenn Sie Datumsangaben in einer Web‑Anwendung klar für Benutzer darstellen wollen. Zum Beispiel können Sie es so verwenden, um das letzte Anmeldedatum auf einer Benutzerprofilseite anzuzeigen.

SELECT 
    user_name,
    DATE_FORMAT(last_login, '%Y-%m-%d %H:%i') AS last_login_formatted
FROM users;

Damit wird das letzte Anmeldedatum und die Uhrzeit des Benutzers im Format „2024-09-16 14:35“ angezeigt.

4.3 Szenario 3: Abfrageoptimierung

In manchen Fällen kann DATE_FORMAT auch zur Optimierung von Datenbankabfragen beitragen. Beispielsweise lässt sich das Formatieren nutzen, wenn Daten innerhalb eines bestimmten Datumsbereichs extrahiert werden sollen.

SELECT 
    *
FROM transactions
WHERE DATE_FORMAT(transaction_date, '%Y-%m') = '2024-09';

Diese Abfrage extrahiert alle Transaktionen, die im September 2024 stattgefunden haben.

5. Hinweise und bewährte Methoden für DATE_FORMAT

5.1 Leistungsüberlegungen

If you use DATE_FORMAT frequently, it may affect performance. In particular, repeatedly applying it to large datasets can increase processing time. If needed, consider storing pre-formatted dates in advance or formatting them at the application level.

5.2 Lokalisierung

When building a multilingual system using DATE_FORMAT, you must pay attention to localization. Since date display formats vary by country and region, you may need to dynamically change formats based on the user’s locale.

5.3 Konsistente Formatierung

Using consistent date formats across an entire system is essential for improving the user experience. For example, by using the same format in input forms, display sections, and reports, you can avoid confusing users.

6. Zusammenfassung

The DATE_FORMAT function is a powerful tool for formatting date data flexibly in MySQL. In this article, we covered basic usage, practical examples, and important notes and best practices. By using this function effectively, you can display dates in a way that is clearer and more user-friendly. As a next step, we recommend learning more advanced date and time operations.

7. Referenzressourcen

We hope this article helps you understand and effectively use the DATE_FORMAT function.