Генерация временных рядов между двумя датами в PostgreSQL
У меня есть такой запрос, который приятно генерирует серию дат между двумя данными датами:
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
Генерирует 162 даты между2004-03-07
а также2004-08-16
и это то, что я хочу. Проблема с этим кодом в том, что он недать правильный ответ, когда две даты из разных лет, например, когда я пытаюсь2007-02-01
а также .2008-04-01
Есть ли лучшее решение?