Heim >Datenbank >MySQL-Tutorial >Wie kann ich in PostgreSQL genaue Datumsreihen über mehrere Jahre hinweg generieren?

Wie kann ich in PostgreSQL genaue Datumsreihen über mehrere Jahre hinweg generieren?

Barbara Streisand
Barbara StreisandOriginal
2025-01-21 17:01:09196Durchsuche

How Can I Generate Accurate Date Series Across Multiple Years in PostgreSQL?

Generieren Sie genau PostgreSQL-Datumsreihen über mehrere Jahre hinweg

Die Funktion generate_series ist nützlich, wenn in PostgreSQL eine Datumssequenz zwischen zwei angegebenen Daten generiert wird. Wie die folgende Abfrage zeigt, liefert sie jedoch möglicherweise keine genauen Ergebnisse, wenn sich die Daten auf verschiedene Jahre erstrecken:

<code class="language-sql">select date '2004-03-07' + j - i as AllDate 
from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i,
     generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j</code>

Um dieses Problem zu lösen, kann eine präzisere Lösung verwendet werden, die die Konvertierung von Zeitstempeln beinhaltet:

<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>

In dieser Abfrage wird die Funktion date_trunc verwendet, um den Datumsanteil aus dem generierten Zeitstempel zu extrahieren und so genaue Ergebnisse sicherzustellen, selbst wenn sich die Daten über verschiedene Jahre erstrecken. Die Funktion generate_series erstellt eine Folge von Zeitstempeln im Abstand von einem Tag, und die Funktion date_trunc wandelt diese Zeitstempel dann wieder in Datumsangaben um und stellt so eine zuverlässige Datumsfolge bereit.

Das obige ist der detaillierte Inhalt vonWie kann ich in PostgreSQL genaue Datumsreihen über mehrere Jahre hinweg generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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