SELECT
extract(year from everyday_quarter) yyyy,
to_char(everyday_quarter,'q') q
FROM(
SELECT
add_months(to_date('2009-07', 'yyyy-mm'),(rownum-1) * 3) everyday_quarter
FROM dual connect by
rownum <
(extract(year FROM to_date('2011-11', 'yyyy-mm')) - extract(year FROM to_date('2009-10' ,'yyyy-mm')) - 1) * 4 -- (年 - 1) * 4
+
(4 - to_char(to_date( '2009-07' ,'yyyy-mm'),'q') + 1) -- 4 - 开始日期当季 + 1
+
to_char(to_date('2011-11', 'yyyy-mm'),'q')
)quarter
extract(year from everyday_quarter) yyyy,
to_char(everyday_quarter,'q') q
FROM(
SELECT
add_months(to_date('2009-07', 'yyyy-mm'),(rownum-1) * 3) everyday_quarter
FROM dual connect by
rownum <
(extract(year FROM to_date('2011-11', 'yyyy-mm')) - extract(year FROM to_date('2009-10' ,'yyyy-mm')) - 1) * 4 -- (年 - 1) * 4
+
(4 - to_char(to_date( '2009-07' ,'yyyy-mm'),'q') + 1) -- 4 - 开始日期当季 + 1
+
to_char(to_date('2011-11', 'yyyy-mm'),'q')
)quarter