In SQL , Datumsangaben sind für Neulinge kompliziert, da beim Arbeiten mit einer Datenbank das Format der Daten in der Tabelle mit den einzufügenden Eingabedaten abgeglichen werden muss. In verschiedenen Szenarien wird anstelle des Datums datetime (mit Datum hängt auch die Zeit zusammen) verwendet.
Zum Speichern eines Datums oder eines Datums- und Uhrzeitwerts in einer Datenbank, MySQL bietet folgende Datentypen an:
| DATUM | Format JJJJ-MM-TT |
| TERMINZEIT | Format: JJJJ-MM-TT HH:MI: SS |
| ZEITSTEMPEL | Format: JJJJ-MM-TT HH:MI: SS |
| JAHR | Format JJJJ oder JJ |
Kommen wir nun zu einigen beliebten Funktionen in SQL-Datumsfunktionen.
JETZT()
Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.
Abfrage:
SELECT NOW();>
Ausgabe:

CURDATE()
Gibt das aktuelle Datum zurück.
Abfrage:
SELECT CURDATE();>
Ausgabe:

CURTIME()
Gibt die aktuelle Uhrzeit zurück.
Abfrage:
SELECT CURTIME();>
Ausgabe:

DATUM()
Extrahiert den Datumsteil eines Datums- oder Datums-/Uhrzeitausdrucks. Beispiel: Für die folgende Tabelle mit dem Namen „Test“
| Ausweis | Name | Geburtszeit |
|---|---|---|
| 4120 | Üben | 26.09.1996 16:44:15.581 |
Abfrage:
SELECT Name, DATE(BirthTime) AS BirthDate FROM Test;>
Ausgabe:
| Name | Geburtsdatum |
|---|---|
| Üben | 26.09.1996 |
EXTRAKT()
Gibt einen einzelnen Teil eines Datums/einer Uhrzeit zurück.
Syntax
EXTRACT(Einheit FROM Datum);
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. Beispiel: Für die folgende Tabelle mit dem Namen „Test“
| Ausweis | Name | Geburtszeit |
|---|---|---|
| 4120 | Üben | 26.09.1996 16:44:15.581 |
Abfrage:
SELECT Name, Extract(DAY FROM BirthTime) AS BirthDay FROM Test;>
Ausgabe:
Zeichenfolge vergleichen mit
| Name | Geburtstag |
|---|---|
| Üben | 26 |
Abfrage:
SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;>
Ausgabe:
| Name | Geburtsjahr |
|---|---|
| Üben | neunzehn sechsundneunzig |
Abfrage:
SELECT Name, Extract(SECOND FROM BirthTime) AS BirthSecond FROM Test;>
Ausgabe:
| Name | GeburtZweite |
|---|---|
| Üben | 581 |
DATE_ADD()
Fügt einem Datum ein angegebenes Zeitintervall hinzu.
Syntax:
DATE_ADD(date, INTERVAL expr type);
Dabei ist Datum ein gültiger Datumsausdruck und Ausdruck ist die Anzahl der Intervalle, die wir hinzufügen möchten. und Typ kann einer der folgenden sein: MIKROSEKUNDE, SEKUNDE, MINUTE, STUNDE, TAG, WOCHE, MONAT, QUARTAL, JAHR usw. Beispiel: Für die folgende Tabelle mit dem Namen „Test“
| Ausweis | Name | Geburtszeit |
|---|---|---|
| 4120 | Üben | 26.09.1996 16:44:15.581 |
Abfrage:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 1 YEAR) AS BirthTimeModified FROM Test;>
Ausgabe:
| Name | BirthTimeModified |
|---|---|
| Üben | 26.09.1997 16:44:15.581 |
Abfrage:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 30 DAY) AS BirthDayModified FROM Test;>
Ausgabe:
| Name | GeburtstagGeändert |
|---|---|
| Üben | 26.10.1996 16:44:15.581 |
Abfrage:
SELECT Name, DATE_ADD(BirthTime, INTERVAL 4 HOUR) AS BirthHourModified FROM Test;>
Ausgabe:
| Name | GeburtZweite |
|---|---|
| Üben | 26.10.1996 20:44:15.581 |
DATE_SUB()
Subtrahiert ein angegebenes Zeitintervall von einem Datum. Die Syntax für DATE_SUB ist dieselbe wie für DATE_ADD, mit dem Unterschied, dass DATE_SUB zum Subtrahieren eines bestimmten Datumsintervalls verwendet wird.
DATEDIFF()
Gibt die Anzahl der Tage zwischen zwei Daten zurück.
Syntax:
DATEDIFF(Datum1, Datum2);
date1 & date2 – Datums-/Uhrzeitausdruck
Abfrage:
SELECT DATEDIFF('2017-01-13','2017-01-03') AS DateDiff;> Ausgabe:
| DateDiff |
|---|
| 10 |
DATUMSFORMAT()
Zeigt Datums-/Uhrzeitdaten in verschiedenen Formaten an.
Syntax:
DATE_FORMAT(Datum,Format);
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, verwendet mit %X
- %v-Woche (01-53), wobei Montag der erste Tag der Woche ist, verwendet mit %x
- %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, vierstellig, verwendet mit %v
- %Y-Jahr, numerisch, vierstellig
- %y-Jahr, numerisch, zweistellig