select 2008+rownum-1 year from dual connect by rownum<=4; YEAR ---------- 2008 2009 2010 2011
使用extract函数抽取小就行了 SQL> select extract(year from sysdate) from dual;EXTRACT(YEARFROMSYSDATE) ------------------------ 2011SQL>
SQL> select extract(year from to_date('2008-01-01','yyyy-mm-dd'))+level-1 2 from dual 3 connect by level<=extract(year from sysdate)-extract(year from to_date('2008-01-01','yyyy-mm-dd'))+1 4 /
select 2008+rownum-1 year from dual connect by rownum<=4; YEAR
----------
2008
2009
2010
2011
使用extract函数抽取小就行了
SQL> select extract(year from sysdate) from dual;EXTRACT(YEARFROMSYSDATE)
------------------------
2011SQL>
SQL> select extract(year from to_date('2008-01-01','yyyy-mm-dd'))+level-1
2 from dual
3 connect by level<=extract(year from sysdate)-extract(year from to_date('2008-01-01','yyyy-mm-dd'))+1
4 /
EXTRACT(YEARFROMTO_DATE('2008-
------------------------------
2008
2009
2010
2011
select 2008 + rownum - 1 from dual connect by rownum <= to_number(to_char(sysdate,'yyyy')) - 2008 +1
---------------------------------------
2008
2009
2010
2011
select 2008+rownum-1 from dual connect by rownum<=to_number(to_char(sysdate,'yyyy'))-2008+1