数据库计算精确年龄
我们现在计算精确年龄的思路是:年减年后,再对比月日,月日未达的,再减一年就OK了。
SQL Server计算精确年龄:
select datediff(year,Birtyday,getdate()) - case when datediff(day,dateadd(year,datediff(year,Birtyday,getdate()),Birtyday),getdate()) >= 0 then 0 else 1 end
MySQL计算精确年龄:
select year(now())-year(birthday) - (DATE_FORMAT(NOW(), '%m%d') < DATE_FORMAT(birthd, '%m%day'))
Oracle计算精确年龄:
select floor(MONTHS_BETWEEN(sysdate,date'2000-1-1')/12) from dual