Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine Zeitreihe zwischen nicht aufeinanderfolgenden Jahren in PostgreSQL?

Wie erstelle ich eine Zeitreihe zwischen nicht aufeinanderfolgenden Jahren in PostgreSQL?

Linda Hamilton
Freigeben: 2025-01-21 16:44:11
Original
328 Leute haben es durchsucht

How to Generate a Time Series Between Non-Consecutive Years in PostgreSQL?

Generieren einer Zeitreihe über nicht aufeinanderfolgende Jahre in PostgreSQL

Das Generieren einer vollständigen Zeitreihe zwischen zwei Daten in PostgreSQL erfordert sorgfältige Überlegungen, insbesondere wenn es um Daten geht, die sich über mehrere Jahre erstrecken. Gängige Methoden, die generate_series mit extract(doy) verwenden, können in solchen Szenarien zu ungenauen Ergebnissen führen.

Ein robusterer Ansatz

Eine überlegene Lösung nutzt die generate_series-Funktion von PostgreSQL in Verbindung mit date_trunc und interval. Diese Technik generiert zuverlässig Zeitreihen über jeden Datumsbereich hinweg, unabhängig vom Jahr.

Die folgende Abfrage veranschaulicht diese verbesserte Methode:

<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>
Nach dem Login kopieren

Hier ist eine Aufschlüsselung:

  • generate_series('2007-02-01'::timestamp, '2008-04-01'::timestamp, '1 day'::interval): Dadurch wird eine Folge von Zeitstempeln generiert, die zwischen dem angegebenen Start- und Enddatum um einen Tag erhöht werden.
  • date_trunc('day', dd): Diese Funktion kürzt die Zeitstempel auf den Beginn jedes Tages und entfernt die Zeitkomponente.
  • ::date: Dadurch werden die resultierenden Zeitstempel für eine sauberere Ausgabe in den Datentyp date umgewandelt.

Dieser verfeinerte Ansatz bietet eine präzise und zuverlässige Methode zum Erstellen von Zeitreihen über nicht aufeinanderfolgende Jahre in PostgreSQL.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Zeitreihe zwischen nicht aufeinanderfolgenden Jahren in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage