Marcus Engene <mengpg@xxxxxxxxx> writes: > I tried this but it didn't work: > select date_trunc ('month', now())::date + interval s.a || ' months' > from generate_series(0, 11) as s(a) People keep trying that :-(. The "typename 'foo'" syntax is for a *literal constant* only. Instead use multiplication, something like select (date_trunc('month', now())::date + s.a * '1 month'::interval)::date from generate_series(0, 11) as s(a) You'll want the cast back to date as the last step here because date+interval will give timestamp. regards, tom lane