select MONTHS_BETWEEN(sysdate,indate)/12 from table_name

解决方案 »

  1.   

    select round(sysdate,'YEAR')-round(d1,'YEAR') from tt;SQL> desc tt
     名称                                      空?      类型
     ----------------------------------------- -------- ------------------------
     D1                                                 DATE
      

  2.   

    select round(sysdate,'YEAR')-round(indate,'YEAR') from tables;
      

  3.   

    SQL> select round(sysdate,'YEAR') from dual;ROUND(SYSD
    ----------
    01-1月 -05
      

  4.   

    select MONTHS_BETWEEN(indate,sysdate)/12 from table_name
      

  5.   

    select trunc(MONTHS_BETWEEN(indate,sysdate)/12) year_diff from table_name
      

  6.   

    or try:select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(indate,'yyyy')) year_diff from dual;不知道楼主想得到的是哪一个
      

  7.   

    select (sysdate-indate)/365 from table?
      

  8.   

    select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(indate,'yyyy')) year_diff from dual;
    上面的这个我觉得比较好,
      

  9.   

    select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(indate,'yyyy')) year_diff from dual;支持用这个
      

  10.   

    select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(indate,'yyyy')) year_diff from dual只有这个才能得到正确的“年”的差值,其余都不对。