Для генерации серии (последовательности), например периодов, необходимо использовать конструкцию generate_series
Запрос в таком случае будет выглядеть следующим образом:
select * from (select CAST('2011-01-01' AS DATE) + (n || ' year')::INTERVAL as START_DATE
FROM generate_series(0, 23) n) m
where START_DATE<current_date
А результат:
