Wygeneruj serię przedziałów tygodniowych dla danego miesiąca

W bazie danych Postgres 9.1 próbuję wygenerować serię tygodni dla danego miesiąca, ale z pewnymi ograniczeniami. Potrzebuję wszystkich tygodni, aby zacząć w poniedziałek i zostać wyciętym, gdy zaczną lub zakończą się w innym miesiącu.

Przykład:

Na luty 2013 r. Chcę wygenerować taką serię:

         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

Zapytanie, które mam teraz, wygląda tak:

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)

To zapytanie daje mi pierwsze 4 tygodnie, ale brakuje mu tygodnia od 25-tego. Czy można zdobyć ostatni tydzień?

questionAnswers(2)

yourAnswerToTheQuestion