Generieren Sie eine Reihe von Wochenintervallen für einen bestimmten Monat

In einer Postgres 9.1-Datenbank versuche ich, eine Reihe von Wochen für einen bestimmten Monat mit einigen Einschränkungen zu generieren. Ich brauche alle Wochen, um am Montag zu beginnen und um gekürzt zu werden, wenn sie in einem anderen Monat beginnen oder enden.

Beispiel:

Für Februar 2013 möchte ich eine Serie wie diese erstellen:

         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

Die Abfrage, die ich jetzt habe, sieht folgendermaßen aus:

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)

Mit dieser Abfrage erhalte ich die ersten 4 Wochen, aber es fehlt die Woche vom 25.. Ist es möglich, die letzte Woche zu bekommen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage