我有一个这样的查询,可以很好地生成两个给定日期之间的一系列日期:
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
and 2004-08-16
这就是我想要的。这段代码的问题在于,当两个日期来自不同年份时,例如当我尝试时,它不会给出正确的答案2007-02-01
and 2008-04-01
.
有更好的解决方案吗?
无需转换为 int 或从 int 转换即可完成(而是转换为时间戳或从时间戳转换)
SELECT date_trunc('day', dd):: date
FROM generate_series
( '2007-02-01'::timestamp
, '2008-04-01'::timestamp
, '1 day'::interval) dd
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)