小编kha*_*jlk的帖子

将间隔拆分为年份切片

作为 Postgres 的新手用户,ad我的 PostgreSQL 9.5 (x64) 数据库中有一个 87 行的表。除了其他列之外,它还有两列“开始”和“结束”,其日期时间范围如下:

ID      Start                   End
1       2003-06-07 00:00:00     2004-09-30 23:59:59
Run Code Online (Sandbox Code Playgroud)

我需要将范围拆分为存储在数据库中的单独行(从开始年份到间隔的最后一年)中的一年窗口,如下所示:

ID       Start
1_2003   2003-06-07 00:00:00     2003-12-31 23:59:59
1_2004   2004-01-01 00:00:00     2004-09-30 23:59:59
Run Code Online (Sandbox Code Playgroud)

使用运算符||'_'||Extract()函数,我可以将 ID 与年份连接起来。此外,这个问题解决了如何分割的间隔周,这个节目怎么好几天做相同的,但他们没有解决如何在专门年分裂的间隔。

我避免了这个问题,因为我不想采用基于存储过程的方法。我知道generate_series()从开始和停止参数返回一个系列,但实际上我正在努力打破一年的最后一天的间隔,然后从下一行的第一天重新开始。如果有人能指导我做到这一点,我将不胜感激?

postgresql datetime set-returning-functions

4
推荐指数
1
解决办法
2410
查看次数