加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在PostgreSQL中生成两个日期之间的时间序列

发布时间:2020-12-13 16:35:52 所属栏目:百科 来源:网络整理
导读:我有一个这样的查询,很好地在两个给定日期之间生成一系列日期: 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 -
我有一个这样的查询,很好地在两个给定日期之间生成一系列日期:
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时,它不会给出正确的答案。任何人有任何想法如何推广它或替代品?

可以在没有转换为/从int的情况下完成(而是转换为/从时间戳)
SELECT date_trunc('day',dd):: date
FROM generate_series
        ( '2007-02-01'::timestamp,'2008-04-01'::timestamp,'1 day'::interval) dd
        ;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读