Das Erstellen einer Zeitreihe über mehrere Jahre in PostgreSQL kann mit der Standard-Datumsarithmetik eine Herausforderung sein. Eine zuverlässigere Methode nutzt Zeitstempel.
Die Lösung:
Diese Abfrage generiert effizient eine tägliche Zeitreihe über Jahre hinweg:
<code class="language-sql">SELECT date_trunc('day', dd)::date FROM generate_series ('2007-02-01'::timestamp , '2008-04-01'::timestamp , '1 day'::interval) dd;</code>
So funktioniert es:
::timestamp
explizit in Zeitstempel umgewandelt. Dies gewährleistet eine genaue Handhabung der Jahresgrenzen.generate_series
Funktion: Die Funktion generate_series
erstellt eine Folge von Zeitstempeln, die um einen Tag erhöht werden ('1 Tag'::Intervall).date_trunc('day', dd)
kürzt jeden Zeitstempel auf den Anfang des Tages und ::date
wandelt das Ergebnis für eine sauberere Ausgabe in einen date
Datentyp um.Dieser Ansatz garantiert eine genaue Zeitreihengenerierung, auch wenn es sich um Daten über mehrere Jahre hinweg handelt.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine jährliche Zeitreihe in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!