PostgreSQL DATE Arithmetik (-)
Mit den arithmetischen DATE-Funktionen von PostgreSQL kannst du Berechnungen mit Datumswerten durchführen, z. B. die Differenz zwischen zwei Daten ermitteln. Diese Funktion ist wichtig für die Analyse von Zeitintervallen, die Zeitplanung und die zeitbasierte Berichterstattung.
Verwendung
Die Arithmetikfunktion DATE wird verwendet, wenn du die Differenz zwischen zwei Daten berechnen oder ein Intervall von einem Datum abziehen musst. Wenn zwei Daten subtrahiert werden, ist das Ergebnis ein Intervall, genauer gesagt in Tagen. Dieser Vorgang wird häufig in Szenarien wie der Berechnung des Alters, der Dauer oder der Terminierung von Aufgaben verwendet.
SELECT date1 - date2 AS interval_result;
In dieser Syntax sind date1
und date2
Datumswerte, und die Subtraktionsoperation -
berechnet das Intervall zwischen ihnen.
Beispiele
1. Einfache Datumssubtraktion
SELECT '2023-10-10'::date - '2023-10-01'::date AS days_difference;
In diesem Beispiel wird die Anzahl der Tage zwischen dem 10. Oktober 2023 und dem 1. Oktober 2023 berechnet, was eine Differenz von 9 Tagen ergibt.
2. Subtrahieren eines Intervalls
SELECT '2023-10-10'::date - INTERVAL '3 days' AS new_date;
In diesem Fall werden 3 Tage vom 10. Oktober 2023 abgezogen, was zu einem neuen Datum, dem 7. Oktober 2023, führt.
3. Berechnen des Alters anhand des Geburtsdatums
SELECT CURRENT_DATE - birth_date AS age_in_days FROM users;
In diesem Beispiel wird das Alter in Tagen für jeden Benutzer in der Tabelle users
berechnet, indem birth_date
vom aktuellen Datum subtrahiert wird.
Tipps und bewährte Praktiken
- Achte auf korrekte Datentypen. Verwandle Strings immer explizit in den Typ
date
und verwende::date
für genaue Berechnungen. - Verstehe die Intervalle. Ein Intervall stellt eine Zeitspanne dar und kann verwendet werden, um bestimmte Zeitspannen wie Tage, Monate oder Jahre zu subtrahieren, um Klarheit und Wartbarkeit zu gewährleisten.
- Entscheide dich für CURRENT_DATE. Nutze
CURRENT_DATE
für Berechnungen mit dem aktuellen Datum, um sicherzustellen, dass deine Abfragen dynamisch und aktuell sind. - Kenne deine Datentypen. Achte auf die Unterschiede zwischen
date
,timestamp
undtimestamp with time zone
, um Verwirrung zu vermeiden, denn nurtimestamp with time zone
berücksichtigt Zeitzonen.