Datumsarithmetik und INTERVAL
Addieren und subtrahieren Sie Datumsangaben mit INTERVAL, berechnen Sie Zeitspannen und erstellen Sie relative Datumsfilter wie „letzte 7 Tage“.
Datumsarithmetik und INTERVAL ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Zusammenfassung der Datums- und Zeittypen
Die vier grundlegenden temporalen Typen in PostgreSQL:
DATE— Kalendertag ohne UhrzeitTIME— TageszeitTIMESTAMP— Datum + Uhrzeit ohne ZeitzoneTIMESTAMPTZ— Datum + Uhrzeit + Zeitzone (für Ereignisse empfohlen)
INTERVAL: Ein Zeitraum
INTERVAL ist eine Dauer. Sie addieren oder subtrahieren sie von einem Datum bzw. Zeitstempel:
SELECT NOW() + INTERVAL '1 day';
SELECT NOW() - INTERVAL '30 days';
SELECT NOW() + INTERVAL '3 months 2 weeks';
SELECT INTERVAL '1 hour' + INTERVAL '15 minutes';INTERVAL-Einheiten
Sie können year, month, week, day, hour, minute, second verwenden (im Singular oder Plural):
SELECT INTERVAL '2 years 6 months';
SELECT INTERVAL '1 week';
SELECT INTERVAL '90 seconds';Häufige relative Datumsfilter
Die grundlegenden Abfragen für die „letzten N Tage“:
SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';
SELECT * FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '1 month';Tage zu einem DATE addieren
PostgreSQL erlaubt außerdem date + integer für „N Tage addieren“:
SELECT DATE '2024-01-01' + 30; -- 2024-01-31
SELECT DATE '2024-01-01' - 1; -- 2023-12-31Zwei Zeitstempel subtrahieren
Die Differenz zweier Zeitstempel ist ein INTERVAL:
SELECT NOW() - '2024-01-01'::TIMESTAMP;
-- → '125 days 14:30:00'
SELECT EXTRACT(EPOCH FROM (NOW() - created_at))/3600 AS hours_ago
FROM events;AGE: Lesbare Differenz
AGE(end, start) gibt ein INTERVAL in Jahren, Monaten und Tagen zurück:
SELECT AGE(NOW(), birth_date) AS age_interval
FROM users WHERE id = 1;
SELECT EXTRACT(YEAR FROM AGE(birth_date)) AS age_in_years
FROM users;Monate addieren — Vorsicht
Das Addieren eines Monats folgt der Kalenderarithmetik. 2024-01-31 + 1 month = 2024-02-29 (gekürzt):
SELECT DATE '2024-01-31' + INTERVAL '1 month'; -- 2024-02-29
SELECT DATE '2024-03-31' + INTERVAL '1 month'; -- 2024-04-30CURRENT_DATE im Vergleich zu NOW()
Unterschiedliche Rückgabetypen — wählen Sie den passenden:
SELECT CURRENT_DATE; -- 2024-03-15 (DATE)
SELECT CURRENT_TIME; -- 14:30:00+02 (TIMETZ)
SELECT CURRENT_TIMESTAMP; -- 2024-03-15 14:30:00+02 (TIMESTAMPTZ)
SELECT NOW(); -- alias for CURRENT_TIMESTAMPDatumswerte aus Bestandteilen erstellen
Erstellen Sie Datumswerte aus Integer-Spalten:
SELECT MAKE_DATE(year, month, day) FROM birthdays;
SELECT MAKE_TIMESTAMP(2024, 3, 15, 14, 30, 0.0);Indizes für Datumsausdrücke
Ein Index auf created_at eignet sich gut für Bereichsabfragen. Für „Ereignisse im März“ ist ein Bereichsfilter schneller als eine Monatstrunkierung:
-- Index-friendly:
WHERE created_at >= '2024-03-01' AND created_at < '2024-04-01';
-- Less friendly (works only with expression index):
WHERE date_trunc('month', created_at) = '2024-03-01';Zusammenfassung
Datumsarithmetik in SQL ist leistungsfähig und zuverlässig.
- INTERVAL für Zeitspannen
- Direkt addieren und subtrahieren
- AGE für lesbare Zeitspannen
- Halboffene Bereiche sind besonders indexfreundlich
Kurzer Test
Welcher Ausdruck gibt Ereignisse aus den letzten 7 Tagen zurück?
Häufig gestellte Fragen
Ist die Lektion „Datumsarithmetik und INTERVAL“ kostenlos?
Ja — der vollständige Text von „Datumsarithmetik und INTERVAL“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Datumsarithmetik und INTERVAL“?
Addieren und subtrahieren Sie Datumsangaben mit INTERVAL, berechnen Sie Zeitspannen und erstellen Sie relative Datumsfilter wie „letzte 7 Tage“. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Datumsarithmetik und INTERVAL“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Datumsarithmetik und INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Zeitzonen: TIMESTAMP vs. TIMESTAMPTZ
- Häufige Datumsberichte (MTD, WoW, YoY)