SELECT YEAR(GETDATE()) - YEAR(CSNY) FROM student WHERE xh = 244;
我想查年龄,怎么写啊,oracle 怎么不支持着写法啊
就是当前年年份-出生年份

解决方案 »

  1.   

    select to_number(to_char(sysdate,'yyyy'))-to_number(to_char(CSNY,'yyyy'))  as 年龄
    from student 
      

  2.   

    1楼的可以
    如果楼主你的CSNY字段是DATE类型的,也可以这样:
    select round((sysdate-csny)/365) as 年龄 from student;
      

  3.   

    select round(months_between(sysdate,to_date('1982/11/20 03:30','yyyy/mm/dd hh24:mi'))/12)
      from dual
      

  4.   


    支持,用months_between(date1,date2)取两个日期间的月份,然后除12,得年龄.
      

  5.   

    select round(months_between(sysdate,to_date('1982/11/20 03:30','yyyy/mm/dd hh24:mi'))/12) 
      from dual
      

  6.   

    oracle里也有这样的类似的方法
    取year month day如下extract(year from datevalue)
    extract(month from datevalue)
    extract(day from datevalue)比如
    SQL> select extract(year from sysdate) year, extract(month from sysdate) month,
    extract(day from sysdate) day from dual;      YEAR      MONTH        DAY
    ---------- ---------- ----------
          2009          6         18
    所以你可以用 顺便getdate是mssql里的取当前时间的function,oracle里是sysdateSELECT extract(year from sysdate)- extract(year from CSNY) FROM student WHERE xh = 244;