PostgreSQL:テーブルを作らずに連続した日付を得るのにgenerate_series()関数を使う例 - m6u's blogで紹介していた、generate_seriesに関する日付を扱う例を見失いがちなので、こっちのブログにも転載する。(同じ作者だからいいのだ。)
例えば、今月を含んで過去3年の間の日付を月ごとに得る例。
(わかりやすくするために、generate_series()の引数を改行してあります。)
select * from generate_series( date_trunc('month',current_date)+'-3 years +1 month', date_trunc('month',current_date), '1 month' ) as months(mon)
generate_series()関数の引数に、日付データとINTERVAL型を与えればよくて、ひと月ずつ間隔を開けるのもINTERVAL型で解決可能っていう。