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



我找到了类似的帮助,但问题更复杂,我只擅长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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新