使用PostgreSQL在未来增加1个月

Phi*_*lip 3 sql postgresql datetime

我有三列看起来像这样:

Column1       Date1         Date2
Test2         2012-06-10    
Test8         2012-05-05    2012-06-10
Run Code Online (Sandbox Code Playgroud)

我将首先根据此数据集描述我想要的输出.它看起来像这样:

Year    Month    Sum
2012    05       1
2012    06       2
2012    07       1
Run Code Online (Sandbox Code Playgroud)

如果Column1包含一个数字(可以通过以下内容找到:WHERE Column1 LIKE'%2%'),则应将此数字添加到Date1中的月份值.这是第一行的情况,即第06行和第07行添加了1.但是,对于第2行的情况,如果Date2中有日期,则只应将1添加到Date1,每个月添加到和包括Date2中的月份.这就是为什么在05和06中添加1.

我猜这个查询会使用INTERVAL函数,但我不确定如何在未来几个月添加值.

更新:

@CraigRinger - 我会再试一次.我想使用Column1中的数字来确定将来运行Date1中的日期的月份.对于第一行,它将从2012-06到2012-07运行(因为Column1中有2).

Date2可视为取消日期.因此对于第二行,Date1将持续8个月,但由于它被取消(按日期2),它仅从05到06运行.

换句话说,查询应该在开始月份(Date1)和每个月(包括结尾)添加1(如果存在则添加Date2).

我想在这几个月的每一个中加1,这样我就知道所有行的总和.我猜这将涉及将日期间隔(等于Column1中的数字)添加到Date1,从这两个数字之间的日期中提取月份并向其中添加一个.不幸的是,我不知道如何最好地实现这一点.

希望这次我能更好地解释它!

Gor*_*off 7

将一个月添加到postgres中的日期的语法是:

select <date> + cast('1 months' as interval)
Run Code Online (Sandbox Code Playgroud)

你的其余逻辑相当令人费解,但你的问题似乎是关于添加几个月的日期.

  • 不需要演员:`选择日期+间隔'1'月` (4认同)