Handhabung Datum und Uhrzeit Daten in MySQL sind für viele Datenbankoperationen unerlässlich, insbesondere wenn es um die Handhabung von Zeitstempeln, die Planung von Aufgaben oder die Generierung zeitbasierter Daten geht. MySQL bietet eine Vielzahl von Datums- und Uhrzeitfunktionen, die Benutzern bei der Arbeit mit Datumswerten helfen, Berechnungen durchführen und diese nach Bedarf formatieren.
Mit diesen Funktionen können Entwickler Berechnungen durchführen, bestimmte Teile eines Datums extrahieren oder die Ausgabe sogar für eine bessere Lesbarkeit formatieren. In diesem Artikel werden wir die am häufigsten verwendeten MySQL-Datumsfunktionen untersuchen, ihre Syntax erläutern, Beispiele liefern und Ihnen zeigen, wie Sie sie effektiv nutzen können
Grundlegendes zu MySQL-Datums- und Uhrzeitdatentypen
Die Arbeit mit Datumsangaben in MySQL kann für Anfänger schwierig sein, insbesondere weil das Datumsformat in der Datenbank beim Einfügen mit dem Format der Eingabedaten übereinstimmen muss. In vielen Fällen müssen wir je nach Anwendungsfall möglicherweise sowohl ein Datum als auch eine Uhrzeit speichern, anstatt nur ein einfaches Datum zu verwenden. Hier ist die DATETIME Und TIMESTAMP Datentypen kommen ins Spiel.
MySQL bietet die folgenden Datentypen zum Speichern von Datums- und Uhrzeitwerten:
1. DATUM :
- Format :
YYYY-MM-DD - Wird nur zum Speichern des Datums (Jahr, Monat und Tag) ohne Zeitkomponente verwendet.
2. DATUMZEIT :
- Format :
YYYY-MM-DD HH:MM:SS - Speichert sowohl das Datum als auch die Uhrzeit und ist daher nützlich, wenn Sie bestimmte Zeiten zusammen mit dem Datum erfassen müssen.
3. ZEITSTEMPEL :
- Format :
YYYY-MM-DD HH:MM:SS - Ähnlich
DATETIMEAberTIMESTAMPbeinhaltet auch Zeitzonenunterstützung. Es wird automatisch auf den aktuellen Zeitstempel aktualisiert, wenn ein Datensatz geändert wird, was es ideal für die Nachverfolgung von Änderungen an Datensätzen im Laufe der Zeit macht.
4. JAHR :
- Format :
YYYYoderYY - Wird zum Speichern nur des Jahres verwendet, was für Anwendungen nützlich sein kann, bei denen nur das Jahr benötigt wird, z. B. zur Verfolgung von Geburtsjahren oder Geschäftsjahren.
MySQL-Datums- und Uhrzeitfunktionen
Lassen Sie uns nun in die MySQL-Datumsfunktionen eintauchen, mit denen Sie Datums- und Zeitdaten effektiv bearbeiten und abfragen können.
1. NOW() – Aktuelles Datum und aktuelle Uhrzeit abrufen
Der JETZT() Die Funktion ruft das aktuelle Datum und die aktuelle Uhrzeit ab JJJJ-MM-TT HH:MI:SS Format.
Abfrage:
SELECT NOW();
Ausgabe:

2. CURDATE() – Nur aktuelles Datum abrufen
Wenn wir nur das aktuelle Datum ohne den Zeitanteil benötigen, können wir ihn verwenden CURDATE() was das Datum in zurückgibt YYYY-MM-DD Format.
Abfrage:
SELECT CURDATE();
Ausgabe:

3. CURTIME() – Nur aktuelle Zeit abrufen
Die Funktion CURTIME() gibt die aktuelle Zeit in zurück HH:MI:SS Format ohne Datum.
Abfrage:
SELECT CURTIME();
Ausgabe:

4. DATE() – Extrahieren Sie den Datumsteil aus einem DATETIME-Wert
DerDATE()Funktion extrahiert nur den Datumsteil aus aDATETIMEoderTIMESTAMPWert unter Verwerfen der Zeit.
Beispiel: Für einen Tisch namens users :
| Ausweis | Name | Geburtszeit |
|---|---|---|
| 4120 | Üben | 1996-09-26 16:44:15.581 |
Abfrage:
SELECT Name DATE(BirthTime)
AS BirthDate FROM Test;
Ausgabe:
| Name | Geburtsdatum |
|---|---|
| Üben | 26.09.1996 |
5. EXTRACT() – Bestimmte Datumsteile extrahieren
EXTRACT()wird verwendet, um bestimmte Teile eines Datums zu extrahieren, z. B. den Tag, den Monat oder das Jahr. Diese Funktion kann besonders hilfreich sein, wenn Sie verschiedene Teile eines Datums analysieren oder vergleichen. Es können mehrere Einheiten in Betracht gezogen werden, es werden jedoch nur einige verwendet, z MIKROSEKUNDE SEKUNDE MINUTE STUNDE TAG WOCHE MONAT QUARTAL JAHR usw. Und „Datum“ ist ein gültiger Datumsausdruck.
Syntax:
EXTRACT(Einheit FROM Datum);
Abfrage zum Extrahieren des Tages:
SELECT Name Extract(DAY FROM
BirthTime) AS BirthDay FROM Test;
Ausgabe:
| Name | Geburtstag |
|---|---|
| Üben | 26 |
Abfrage zum Extrahieren des Jahres:
in Java
SELECT Name Extract(YEAR FROM BirthTime)
AS BirthYear FROM Test;
Ausgabe:
| Name | Geburtsjahr |
|---|---|
| Üben | 1996 |
Abfrage zum Extrahieren von Sekunden:
SELECT Name Extract(SECOND FROM
BirthTime) AS BirthSecond FROM Test;
Ausgabe:
| Name | GeburtZweite |
|---|---|
| Üben | 581 |
6. DATE_ADD() – Intervalle zu einem Datum hinzufügen
Der DATE_ADD() Mit der Funktion können Sie Zeitintervalle (z. B. Tage, Monate, Jahre) zu einem Datum hinzufügen oderDATETIMEWert.
Syntax:
DATE_ADD(date INTERVAL expr type);
Beispiel: Für die folgende Tabelle mit dem Namen ' Prüfen '
| Ausweis | Name | Geburtszeit |
|---|---|---|
| 4120 | Üben | 1996-09-26 16:44:15.581 |
Anfrage an Fügen Sie 1 Jahr zu einem Datum hinzu
SELECT Name DATE_ADD(BirthTime INTERVAL
1 YEAR) AS BirthTimeModified FROM Test;
Ausgabe:
| Name | BirthTimeModified |
|---|---|
| Üben | 26.09.1997 16:44:15.581 |
Abfrage zum Hinzufügen von 30 Tagen zu einem Datum
SELECT Name DATE_ADD(BirthTime
INTERVAL 30 DAY) AS BirthDayModified FROM Test;
Ausgabe:
| Name | GeburtstagGeändert |
|---|---|
| Üben | 1996-10-26 16:44:15.581 |
Abfrage zum Hinzufügen von 4 Stunden zu einem Datum
SELECT Name DATE_ADD(BirthTime INTERVAL
4 HOUR) AS BirthHourModified FROM Test;
Ausgabe:
| Name | GeburtZweite |
|---|---|
| Üben | 1996-10-26 20:44:15.581 |
7. DATEDIFF() – Finden Sie den Unterschied zwischen zwei Daten
Diese Funktion gibt die Anzahl der Tage zwischen zwei Daten zurück.
Syntax:
DATEDIFF(intervaldate1 date2);
Intervall - Minute/Stunde/Monat/Jahr usw
date1 & date2 – Datums-/Uhrzeitausdruck
Anfrage an Finden Sie den Unterschied zwischen zwei Daten
SELECT DATEDIFF(day '2017-01-13' '2017-01-03') AS DateDiff;
Ausgabe:
| DateDiff |
|---|
8. DATE_FORMAT() – Format Datum und Uhrzeit
Mit DATE_FORMAT() können wir a formatieren DATUM DATUMZEIT oder ZEITSTEMPEL Wert mithilfe von Platzhaltern in ein benutzerdefiniertes Format umwandeln.
Syntax:
in Java-Regex
DATE_FORMAT(Datumsformat);
Das Datum ist ein gültiges Datum und das Format gibt das Ausgabeformat für Datum/Uhrzeit an. Folgende Formate können verwendet werden:
- %a-Abgekürzter Wochentagsname (Sonntag bis Samstag)
- %b-Abgekürzter Monatsname (Jan.-Dez.)
- %c-Monat numerisch (0-12)
- %D-Tag des Monats mit englischem Suffix (0. 1. 2. 3.)
- %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 (Januar-Dezember)
- %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-Zeit 24 Stunden (hh:mm: ss)
- %U-Woche (00-53), wobei Sonntag der erste Tag der Woche ist
- %u-Woche (00-53), wobei Montag der erste Tag der Woche ist
- %V-Woche (01-53), wobei Sonntag der erste Tag der Woche ist, der mit %X verwendet wird
- %v-Woche (01-53), wobei Montag der erste Tag der Woche ist, der mit %x verwendet wird
- %W-Wochentagsname (Sonntag-Samstag)
- %w-Tag der Woche (0=Sonntag 6=Samstag)
- %X-Jahr für die Woche, wobei Sonntag der erste Tag der Woche ist, vierstellig, verwendet mit %V
- %x-Jahr für die Woche, wobei Montag der erste Tag der Woche ist. Vier Ziffern werden mit %v verwendet
- %Y-Jahr numerisch vierstellig
- %y-Jahr numerisch zweistellig
Abfrage zum Formatieren eines Datums
SELECT DATE_FORMAT('2025-04-10 12:34:56' '%W %M %d %Y') AS formatted_date;Ausgabe:
| Formatiertes_Datum |
|---|
| Donnerstag, 10. April 2025 |
Best Practices für die Arbeit mit Datum und Uhrzeit in MySQL
1. Verwenden Sie immer die richtigen Datumsformate
Stellen Sie beim Einfügen oder Aktualisieren von Datumsangaben sicher, dass Sie die erwarteten Formate von MySQL befolgen (YYYY-MM-DD YYYY-MM-DD HH:MI:SS). Dadurch wird sichergestellt, dass Ihre Abfragen die erwarteten Ergebnisse ohne Fehler zurückgeben.
2. Überlegungen zur Zeitzone mit TIMESTAMP
WährendDATETIMEspeichert keine ZeitzoneninformationenTIMESTAMPtut. Wenn Ihre Anwendung zeitzonenabhängig ist (z. B. bei internationalen Anwendungen), sollten Sie die Verwendung in Betracht ziehenTIMESTAMPfür Datums-/Uhrzeitfelder, die unterschiedliche Zeitzonen berücksichtigen müssen.
3. Umgang mit Datumsbereichen in Abfragen
Stellen Sie sicher, dass Sie zum Filtern von Daten basierend auf Datumsbereichen (z. B. zum Abrufen aller Datensätze aus einem bestimmten Monat oder Jahr) geeignete Datumsvergleiche verwendenWHEREKlausel. Beispiel:
SELECT * FROM orders
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';
4. Leistungsüberlegungen
Beachten Sie beim Arbeiten mit Datums- und Uhrzeitfunktionen, insbesondere bei großen Datensätzen, die Auswirkungen auf die Leistung. Vermeiden Sie die Verwendung von Funktionen wieNOW()oderCURDATE()imWHERE-Klausel, da sie Abfragen beim Umgang mit großen Tabellen verlangsamen können.
Abschluss
Datums- und Uhrzeitfunktionen von MySQL sind wesentliche Werkzeuge für Handhabung Und manipulieren zeitliche Daten in Ihren Datenbanken. Durch die Beherrschung von Funktionen wieNOW() CURDATE() DATE_ADD() DATEDIFF()UndDATE_FORMAT()Sie können problemlos damit arbeiten Zeitbasierte Berechnungen Vergleiche Und Formate . Der Schlüssel zur effektiven Nutzung dieser Funktionen besteht darin, ihre Syntax zu verstehen, wann und wie sie verwendet werden und welche Auswirkungen sie auf die Leistung in großen Datenmengen haben. Mit diesem Wissen können Sie effizientere, genauere und skalierbare Abfragen für alle Ihre datums- und zeitbezogenen Anforderungen in MySQL erstellen.