Generowanie szeregów czasowych między dwiema datami w PostgreSQL
Mam takie zapytanie, które ładnie generuje serię dat między 2 podanymi datami:
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
Generuje 162 daty między2004-03-07
i2004-08-16
i to czego chcę. Problem z tym kodem polega na tym, że nie dałby właściwej odpowiedzi, gdy dwie daty pochodzą z różnych lat, na przykład kiedy próbuję2007-02-01
i2008-04-01
.
Czy jest lepsze rozwiązanie?