62,621
社区成员
发帖
与我相关
我的任务
分享select to_char(to_date('2002-01-02','yyyy-mm-dd'),'yyyy') + rownum - 1
from dual
connect by rownum <= to_char(to_date('2006-10-11','yyyy-mm-dd'),'yyyy') - to_char(to_date('2002-01-02','yyyy-mm-dd'),'yyyy');SQL> WITH x AS (
2 SELECT extract(YEAR FROM to_date('2002-01-02', 'yyyy-mm-dd')) a,
3 extract(YEAR FROM to_date('2006-10-11', 'yyyy-mm-dd')) b
4 FROM dual
5 )
6 SELECT least(x.a, x.b) + ROWNUM -1 AS YEAR
7 FROM x
8 CONNECT BY LEVEL <= abs(x.a - x.b) + 1;
YEAR
----------
2002
2003
2004
2005
2006
SQL> SQL> SELECT extract(YEAR FROM to_date('2002-01-02', 'yyyy-mm-dd')) + ROWNUM - 1 AS YEAR
2 FROM dual
3 CONNECT BY level <=
4 abs(extract(YEAR FROM to_date('2002-01-02', 'yyyy-mm-dd')) -
5 extract(YEAR FROM to_date('2006-10-11', 'yyyy-mm-dd'))) + 1;
YEAR
----------
2002
2003
2004
2005
2006
SQL>
SQL> select * from gjhohj_a;
ID D
--------------------------------------- -----------
1 2010-2-1
1 2011-2-1
1 2012-2-1
1 2013-2-1
1 2014-2-1
SQL> select * from gjhohj_a where to_char(d,'yyyy')>='2011' and to_char(d,'yyyy')<='2013';
ID D
--------------------------------------- -----------
1 2011-2-1
1 2012-2-1
1 2013-2-1
SQL>