gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:05:17 24 4
gpt4 key购买 nike

我有一个这样的查询,可以很好地生成 2 个给定日期之间的一系列日期:

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-072004-08-16 之间生成 162 个日期,这正是我想要的。这段代码的问题在于,当两个日期来自不同的年份时,它不会给出正确的答案,例如当我尝试 2007-02-012008-04-01

有没有更好的解决方案?

最佳答案

可以在不转换到/从 int 的情况下完成(而是到/从时间戳)

SELECT date_trunc('day', dd):: date
FROM generate_series
( '2007-02-01'::timestamp
, '2008-04-01'::timestamp
, '1 day'::interval) dd
;

关于sql - 在 PostgreSQL 中生成两个日期之间的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com