select DATE '2008-01-01' + (interval '1' month * generate_series(0,11))
संपादित करें
यदि आपको गतिशील रूप से संख्या की गणना करने की आवश्यकता है, तो निम्नलिखित मदद कर सकते हैं:
select DATE '2008-01-01' + (interval '1' month * generate_series(0,month_count::int))
from (
select extract(year from diff) * 12 + extract(month from diff) + 12 as month_count
from (
select age(current_timestamp, TIMESTAMP '2008-01-01 00:00:00') as diff
) td
) t
यह 2008-01-01 के बाद से महीनों की संख्या की गणना करता है और फिर इसके ऊपर 12 जोड़ देता है।
लेकिन मैं स्कॉट से सहमत हूं:आपको इसे एक सेट रिटर्निंग फ़ंक्शन में रखना चाहिए, ताकि आप कुछ ऐसा कर सकें जैसे select * from calc_months(DATE '2008-01-01')