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

PostgreSQL TIMESTAMP

PostgreSQL bietet robuste Unterstützung für Datums- und Zeitdatentypen, einschließlich `TIMESTAMP OHNE ZEITZONE`, das Datum und Uhrzeit ohne Zeitzone speichert. Diese Funktionen sind für eine präzise Zeitmessung und Datenbearbeitung unerlässlich.

Verwendung

Datums- und Zeitdatentypen und -funktionen wie `TIMESTAMP OHNE ZEITZONE` werden verwendet, wenn du genaue Datums- und Zeitdaten speichern oder Operationen mit diesen Daten durchführen musst. Sie sind entscheidend für Anwendungen, die eine genaue Zeiterfassung, Zeitplanung und historische Datenanalyse erfordern.

sql
SELECT column_name
FROM table_name
WHERE timestamp_column = TIMESTAMP 'YYYY-MM-DD HH:MI:SS';

In dieser Syntax wird `TIMESTAMP 'YYYY-MM-DD HH:MI:SS'` verwendet, um ein bestimmtes Datum und eine bestimmte Uhrzeit für den Vergleich mit den Einträgen in `timestamp_column` zu definieren.

Beispiele

1. Grundlegende TIMESTAMP-Verwendung

sql
SELECT order_id
FROM orders
WHERE order_date = TIMESTAMP '2023-10-15 14:30:00';

Diese Abfrage wählt Bestellungen aus der Tabelle "Bestellungen" aus, bei denen das "Bestelldatum" mit dem angegebenen Zeitstempel übereinstimmt.

2. Teile eines TIMESTAMPs extrahieren

sql
SELECT EXTRACT(YEAR FROM order_date) AS order_year
FROM orders;

Hier holt die Funktion "EXTRACT" die Jahreszahl aus der Spalte "order_date" für jede Zeile der Tabelle "orders".

3. Berechnung von Datumsdifferenzen

sql
SELECT order_id, delivery_date - order_date AS delivery_duration
FROM orders;

Dieses Beispiel berechnet die Dauer zwischen `Bestelldatum` und `Lieferdatum` für jede Bestellung und gibt sie als `Lieferdauer` zurück.

4. TIMESTAMP MIT ZEITZONE verwenden

sql
SELECT order_id
FROM orders
WHERE order_date AT TIME ZONE 'UTC' = TIMESTAMP '2023-10-15 14:30:00';

Dieses Beispiel zeigt, wie du mit `TIMESTAMP WITH TIME ZONE` Zeitzonenunterschiede berücksichtigen kannst, indem du `order_date` in eine bestimmte Zeitzone konvertierst.

5. Kürzen von Daten mit DATE_TRUNC

sql
SELECT DATE_TRUNC('month', order_date) AS month_start
FROM orders;

Diese Abfrage verwendet die Funktion `DATE_TRUNC`, um `order_date` für jeden Datensatz auf den Monatsanfang abzuschneiden.

Tipps und bewährte Praktiken

  • Verwende eine angemessene Genauigkeit. Erwäge die Verwendung von `TIMESTAMP WITH TIME ZONE`, wenn deine Anwendung die Kenntnis von Zeitzonen erfordert.
  • Index-Zeitstempelspalten. Die Indexierung kann Abfragen mit Zeitstempelvergleichen erheblich beschleunigen. Die Indizierungsstrategien können jedoch je nach Abfragemuster variieren und sollten von Fall zu Fall geprüft werden.
  • Sei konsequent bei den Formaten. Verwende immer das gleiche Datums- und Zeitformat, um Verwechslungen und Fehler zu vermeiden.
  • Nutze die Datumsfunktionen klug. Funktionen wie `AGE`, `NOW` und `DATE_TRUNC` können komplexe Datumsberechnungen vereinfachen.
  • Hüte dich vor der Sommerzeit. Wenn du `TIMESTAMP WITH TIME ZONE` verwendest, passt PostgreSQL die gespeicherte Zeit automatisch an die Sommerzeit an, um die Genauigkeit zu erhalten.