select round(months_between(sysdate,to_date('1982/11/20 03:30','yyyy/mm/dd hh24:mi'))/12) from dual
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;
from student
如果楼主你的CSNY字段是DATE类型的,也可以这样:
select round((sysdate-csny)/365) as 年龄 from student;
from dual
支持,用months_between(date1,date2)取两个日期间的月份,然后除12,得年龄.
from dual
取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;