1.取得2005年1月到2005年12月的所有月份,根据这个就能推敲出其他的比如取详细日期列表,时间
select distinct (to_char(dt, 'yyyy-mm'))
from (select add_months(to_date('2005-01-01', 'yyyy-mm-dd'), rownum - 1) dt
from dual
connect by rownum <= to_date('2005-12-30', 'yyyy-mm-dd') -
to_date('2005-01-01', 'yyyy-mm-dd') + 1)
2.取得某年(1900年)到当年
( SELECT distinct TO_CHAR ( ADD_MONTHS (TO_DATE ('1900', 'YYYY'), ROWNUM - 1),'YYYY') NF
FROM DUAL
CONNECT BY ROWNUM <=MONTHS_BETWEEN (TO_DATE (TO_CHAR (SYSDATE, 'YYYY'), 'YYYY'),TO_DATE ('1900', 'YYYY'))+ 1)
3.取得当年的最近几年
select (to_number(to_char(sysdate,'yyyy'))-5+rownum) as year from ALL_OBJECTS where rownum < 16