Datumswerte
Constraints & Struktur
Datumsangaben wie das Bestelldatum in der Tabelle Bestellungen speicherst du in speziellen Datums-Datentypen. Damit kannst du rechnen, vergleichen und sortieren – anders als bei reinem Text.
Die wichtigsten Datentypen
| Typ | Inhalt | Beispiel |
|---|---|---|
DATE | nur Datum | 2026-06-19 |
DATETIME | Datum + Uhrzeit | 2026-06-19 14:30:00 |
TIMESTAMP | Datum + Uhrzeit (oft mit Zeitzone) | 2026-06-19 14:30:00 |
TIME | nur Uhrzeit | 14:30:00 |
Das ISO-Format
Das international eindeutige Format ist JJJJ-MM-TT (ISO 8601). Verwende es immer, um Verwechslungen zwischen Tag und Monat zu vermeiden:
INSERT INTO Bestellungen (BestellID, KundenID, ProduktID, Menge, Bestelldatum) VALUES (1, 1, 2, 3, '2026-06-19');
Datumswerte vergleichen
Du kannst Datumswerte wie Zahlen vergleichen. Alle Bestellungen ab Juni 2026:
SELECT BestellID, Bestelldatum FROM Bestellungen WHERE Bestelldatum >= '2026-06-01';
Einen Zeitraum prüfst du elegant mit BETWEEN:
SELECT * FROM Bestellungen WHERE Bestelldatum BETWEEN '2026-01-01' AND '2026-12-31';
Aktuelles Datum
- MySQL/PostgreSQL:
CURRENT_DATE,NOW() - SQL Server:
GETDATE(),SYSDATETIME()
Stolperfalle
Vergleichst du eine DATETIME-Spalte mit einem reinen Datum, geht die Uhrzeit gerne schief: Bestelldatum = '2026-06-19' findet eine Zeile mit 2026-06-19 14:30:00 nicht, weil die Uhrzeit 00:00:00 erwartet wird. Nutze dann lieber einen Bereich (>= '2026-06-19' AND < '2026-06-20'). Speichere Datumswerte zudem nie als VARCHAR – sonst kannst du nicht korrekt sortieren oder rechnen.