Создать серию недельных интервалов для данного месяца
В базе данных Postgres 9.1 я пытаюсь создать серию недель для данного месяца, но с некоторыми ограничениями. Мне нужно, чтобы все недели начинались в понедельник, и меня урезали, когда они начинаются или заканчиваются через месяц.
Пример:
В феврале 2013 года я хочу создать серию, подобную этой:
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го числа. Можно ли получить прошлую неделю?