Generierung von Zeitreihen, die zwischen zwei Daten in PostgreSQL

Ich habe eine Abfrage wie diese, die schön ist, generiert eine Reihe von Daten, die zwischen 2 angegebenen Terminen:

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

Erzeugt es 162 Termine zwischen 2004-03-07 und 2004-08-16 und das, was ich will. Das problem bei diesem code ist, dass es nicht die richtige Antwort, wenn die beiden Termine sind aus verschiedenen Jahren, zum Beispiel, wenn ich versuche 2007-02-01 und 2008-04-01.

Gibt es eine bessere Lösung?

InformationsquelleAutor der Frage f.ashouri | 2013-01-01

Schreibe einen Kommentar