У меня есть такой запрос, который красиво генерирует серию дат между двумя заданными датами:
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
.
Есть ли лучшее решение?