可用to_char函数将date类型转成字符类型。
如emp表中有如下数据:
如果计算生日的方法是当前日期的年份减去生日的年份,可用如下语句:
select ename,hiredate,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') from emp;
查询结果:
很明显不对,你拿个date类型去减字符串类型,肯定出错 而且你少打了一个左括号吧 ,很简单的一句select (to_char(sysdate,'YYYY')-to_char(t.csny, 'YYYY')) age from rs_person_baseinfo t
select floor(months_between(sysdate,t.csny)/12) as age from rs_person_baseinfo t; floor 向下取整months_between 日期相差的月份数
select (to_date(sysdate, 'yyyyMMDD') - t.csny)/365 age from rs_person_baseinfo t