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,从这两个数字之间的日期中提取月份并向其中添加一个.不幸的是,我不知道如何最好地实现这一点.
希望这次我能更好地解释它!
将一个月添加到postgres中的日期的语法是:
select <date> + cast('1 months' as interval)
Run Code Online (Sandbox Code Playgroud)
你的其余逻辑相当令人费解,但你的问题似乎是关于添加几个月的日期.
| 归档时间: |
|
| 查看次数: |
5331 次 |
| 最近记录: |