Direkt zum Inhalt
Urkunden
JSON-FunktionenTabellen & Schema ManagementMathe-FunktionenDatenbankenString-FunktionenAuslöserIndizesDatum FunktionenBasic Syntax

PostgreSQL INTERVAL

Der `INTERVAL` von PostgreSQL ist eine Datumsfunktion, mit der eine Zeitspanne wie Tage, Monate oder Jahre dargestellt und bearbeitet werden kann. Sie ermöglicht das Addieren oder Subtrahieren von bestimmten Zeitintervallen zu den Datentypen `TIMESTAMP` oder `DATE`.

Verwendung

Die Funktion `INTERVAL` wird verwendet, wenn du eine Datums- und Zeitarithmetik durchführen musst, z. B. wenn du Zeiträume zu einem Datum addieren oder von ihm subtrahieren willst. Sie ist besonders nützlich für die Bearbeitung von Aufgaben, die wiederkehrende Ereignisse oder Zeitplanung beinhalten.

SELECT date_column ± INTERVAL 'quantity unit';

In dieser Syntax gibt `INTERVAL 'Mengeneinheit'` das Zeitintervall an, das zu `date_column` addiert oder subtrahiert werden soll.

Beispiele

1. Hinzufügen von Tagen zu einem Datum

SELECT CURRENT_DATE + INTERVAL '5 days';

Dieses Beispiel fügt dem aktuellen Datum fünf Tage hinzu und liefert ein neues Datum, das fünf Tage in der Zukunft liegt.

2. Monate von einem Datum subtrahieren

SELECT CURRENT_DATE - INTERVAL '2 months';

Hier werden zwei Monate vom aktuellen Datum abgezogen, um ein Datum zu erhalten, das zwei Monate zurückliegt.

3. Komplexe Intervallmanipulation

SELECT NOW() + INTERVAL '1 year 2 months 3 days';

Dieses Beispiel fügt ein komplexes Intervall von einem Jahr, zwei Monaten und drei Tagen zum aktuellen Zeitstempel hinzu und demonstriert die Flexibilität der Funktion "INTERVAL".

Zusätzliche Nutzung mit Intervallpräzision

PostgreSQL ermöglicht eine Intervallpräzision, mit der die Intervalle genauer angegeben werden können, z.B. `INTERVAL YEAR TO MONTH` oder `INTERVAL DAY TO SECOND`. Dies ist nützlich für komplexe Spezifikationen.

SELECT INTERVAL '1-2' YEAR TO MONTH; -- 1 year and 2 months

Intervall-Normalisierungsfunktionen

Für die Normalisierung von Intervallen stellt PostgreSQL Funktionen wie `JUSTIFY_DAYS()`, `JUSTIFY_HOURS()` und `JUSTIFY_INTERVAL()` zur Verfügung, um Intervalle an konventionelle Formen anzupassen.

SELECT JUSTIFY_INTERVAL(INTERVAL '30 days'); -- Converts to '1 month'

Umgang mit verschiedenen Einheiten

Intervalle können sich je nach den verwendeten Einheiten unterschiedlich verhalten. Wenn du zum Beispiel einen Monat zu einem Datum im Januar hinzufügst, ergibt sich ein Datum im Februar, das weniger Tage haben kann.

Tipps und bewährte Praktiken

  • Verwende einheitliche Einheiten. Gib die Einheiten (z.B. Tage, Monate) genau an, um Klarheit zu schaffen und Missverständnisse zu vermeiden.
  • Validiere die Datumsarithmetik. Teste die Intervallberechnungen immer, um sicherzustellen, dass sie die erwarteten Ergebnisse liefern, insbesondere bei unterschiedlichen Monatslängen und Schaltjahren.
  • Kombiniere mit `AGE()`. Verwende `INTERVAL` mit der Funktion `AGE()`, um die Differenz zwischen zwei Daten zu berechnen und so eine umfassendere Datumsbehandlung zu ermöglichen.
  • Hebelwirkung für die Terminplanung. Nutze `INTERVAL` in Terminplanungsanwendungen, um wiederkehrende Ereignisse und Termine einfach zu verwalten.
  • Vermeide häufige Fallstricke. Achte auf mögliche Probleme wie negative Intervalle oder einen Intervallüberlauf und stelle sicher, dass die Logik diese Szenarien richtig behandelt.