PostgreSQL给定的开始日期和结束日期,总计我需要将其分为几天



我有一个简单的表格。

它具有开始日期,结束日期和总卷

示例2016年1月1日,2016年12月31日和360,0000

我需要分为以下输出

1 Jan 2016 360000/366
2 Jan 2016 360000/366
...
..
..
31 Dec 2016 360000/366

366是2016年的否日期

需要将OUPUT发送到另一个表。最简单的方法是什么?有些跨越20 - 30年。

预先感谢您。

您可以使用generate_series()

with const as (
      select '2016-01-01'::date as date_start, '2016-12-31'::date as date_end, 360000 as amt
     )
select g.dte, amt / (date_end - date_start + 1.0)
from const, lateral
     generate_series(date_start, date_end, interval '1 day') as g(dte) ; 

在所有版本的Postgres中不支持横向连接,因此您也可以做:

select generate_series(date_start, date_end, interval '1 day') as dte,
       amt / (date_end - date_start + 1.0)
from const

最新更新