通过SQL来伪造两个日期之间的季度
WITH PARAMS AS(
SELECT '2014-01-01' BG,'2014-12-31' ED FROM DUAL
),
YQ AS(
SELECT DISTINCT TO_CHAR(ADD_MONTHS(TO_DATE(PM.BG,'YYYY-MM-DD'),ROWNUM-1),'YYYYQ') YEAR_Q
FROM DUAL INNER JOIN PARAMS PM ON 1=1
CONNECT BY ROWNUM<=(SELECT MONTHS_BETWEEN(TO_DATE(PA.ED,'YYYY-MM-DD'),TO_DATE(PA.BG,'YYYY-MM-DD'))+1
FROM DUAL INNER JOIN PARAMS PA ON 1=1)
ORDER BY YEAR_Q
)
SELECT SUBSTR(YEAR_Q,0,4)||'年第'||SUBSTR(YEAR_Q,5,1)||'季度' RQ FROM YQ
截图如下: