我有一个这样的查询,可以很好地在两个给定日期之间生成一系列日期:
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
它在 2004-03-07
和 2004-08-16
之间生成 162 个日期,这就是我想要的。这段代码的问题在于,当两个日期来自不同年份时,它不会给出正确的答案,例如当我尝试 2007-02-01
和 2008-04-01
时。
有更好的解决方案吗?
原文由 f.ashouri 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以在不转换到/从 int 的情况下完成(而是转换到/从时间戳)