use*_*142 4 sql postgresql date-range generate-series
我必须为特定时期内的每个月生成一个包含两列天间隔的列表。第一列必须是一个月的第一天,第二列必须是一个月的最后一天。
示例:
开始日期:2014-01-01
结束日期:2014-06-30
结果应该在两列中:
1. 2014-01-01 | 2014-01-31
2. 2014-02-01 | 2014-02-28
3. 2014-03-01 | 2014-03-31
4. 2014-04-01 | 2014-04-30
5. 2014-05-01 | 2014-05-31
6. 2014-06-01 | 2014-06-30
Run Code Online (Sandbox Code Playgroud)
我有两个函数可以从日期中获取第一天和最后一天。我试图结合两个系列,但没有运气。
select i::date
from generate_series(first_day('2014-01-01')
,first_day('2014-06-30'), '1 month'::interval) i
select i::date
from generate_series(last_day('2014-01-01')
,last_day('2014-06-30'), '1 month'::interval) i
Run Code Online (Sandbox Code Playgroud)
当它在系列中时,第二个函数不能正确显示最后一天。
基于这个答案:
select d::date as start_date,(d + '1 month'::interval - '1 day'::interval )::date end_date
from generate_series('2014-01-01'::date, '2014-06-30'::date, '1 month'::interval) d
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2158 次 |
| 最近记录: |