Postgres - 将日期范围转换为个月

时间:2016-02-05 15:08:33

标签: postgresql date-range generate-series

我找到了类似的帮助,但问题更复杂,我只对SQL的基础知识很好,并且在这里引人注目。我得到了一些列a,b,c,startdate,enddate,我需要将这些数据解析成多行,具体取决于该范围内的月数。

例如:a,b,c,1/1 / 2015,3 / 15,2015将成为:

a,b,c,1/1/2015,value_here_doesnt_matter
a,b,c,2/1/2015,value_here_doesnt_matter
a,b,c,3/1/2015,value_here_doesnt_matter

如果开始日期或结束日期在特定日期无关紧要,唯一重要的是月份和年份。因此,如果范围包含给定月份中的任何一天,我希望输出该范围内每个月的开始日期,将第一天作为默认日期。

我可以就哪个方向开始有任何建议吗?我正在尝试generate_series,但我不确定这是否是正确的方法,或者如何使它保持前几个任意列中的数据保持一致。

1 个答案:

答案 0 :(得分:0)

我认为generate_series是要走的路。在不知道你的其他数据是什么样的情况下,我会从这样的事情开始:

select
  a, b, c, generate_series(startdate, enddate, interval '1 month')::date
from
  my_table