在Postgres9.1数据库中,我试图为给定的月份生成一系列星期,但有一些限制。我需要所有的星期才能从星期一开始,而当它们在另一个月开始或结束时会被削减。
例子:
对于2013年2月,我想生成一个像这样的系列:
start ------------------------ 2013-02-01 00:00:00+00 2013-02-04 00:00:00+00 2013-02-11 00:00:00+00 2013-02-18 00:00:00+00 2013-02-25 00:00:00+00
我现在拥有的查询如下所示:
SELECT GREATEST(date_trunc('week', dates.d), date_trunc('month',dates.d)) as start FROM generate_series(to_timestamp(1359676800),to_timestamp(1362095999), '1 week') as dates(d)
这个查询让我得到了前4周的信息,但是从25号开始缺少了一周。可以得到最后一周吗?
select greatest(date_trunc(‘week’, dates.d), date_trunc(‘month’,dates.d)) as start from generate_series(‘2013-02-01’::date, ‘2013-02-28’, ‘1 day’) as dates(d) group by 1 order by 1