数据库里怎样根据出生日期计算精确年龄

  网上有很多人都在问怎样根据出生日期计算出年龄,回答的人很多,但大部份都是用年减年的方式去算年龄,这样误差就太大了,我们现在计算精确年龄的思路是:年减年后,再对比月日,月日未达的,再减一年就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(birthday, '%m%d'))

你可能感兴趣的:(SQL,Server,MySQL)