在查看日期范围时,是否还有generate_series
返回开始日期和结束日期?
select
'2014-06-05 00:00:00'::timestamp + ('1 month'::INTERVAL * s.a) AS date
from
generate_series(1, cast(extract(month from age('2014-09-05'::date, '2014-06-05'::date)) AS integer), 1) as s(a);
给出这个输出
date
2014-07-05 00:00:00
2014-08-05 00:00:00
2014-09-05 00:00:00
这很好,但是我想拥有
start_date end_date date
2014-06-05 2014-09-05 2014-07-05 00:00:00
2014-06-05 2014-09-05 2014-08-05 00:00:00
2014-06-05 2014-09-05 2014-09-05 00:00:00
原因是我正在从另一个表中提取多个开始/结束对,但无法找出将它们连接在一起的方法。我也在使用 PostgeSQL 版本 8.2.15(因此generate_series
功能更复杂)。
为了将此扩展到我的主要问题,我有一个包含这些开始和结束时间对的表。
start_date end_date
2014-08-25 00:00:00 2014-09-25 00:00:00
2014-05-16 00:00:00 2014-08-16 00:00:00
2014-09-09 00:00:00 2014-12-09 00:00:00
2014-06-05 00:00:00 2014-07-05 00:00:00
2014-05-19 00:00:00 2014-08-19 00:00:00
2014-05-15 00:00:00 2014-07-15 00:00:00
2014-09-04 00:00:00 2014-11-04 00:00:00
如何遍历此表并将其与扩展的日期范围连接?