在SQL Server数据库中,我记录了人们的出生日期。是否有仅使用SQL来计算给定日期的人的年龄的简单方法?
使用 DATEDIFF(YEAR,DateOfBirth,GETDATE()) 不起作用,因为它仅查看日期的年份部分。例如 DATEDIFF(YEAR,‘2007年12月31日’,‘2008年1月1日’) 返回1。
查看本文:如何使用SQL代码计算一个人的年龄
这是文章中的代码:
DECLARE @BirthDate DATETIME DECLARE @CurrentDate DATETIME SELECT @CurrentDate = '20070210', @BirthDate = '19790519' SELECT DATEDIFF(YY, @BirthDate, @CurrentDate) - CASE WHEN( (MONTH(@BirthDate)*100 + DAY(@BirthDate)) > (MONTH(@CurrentDate)*100 + DAY(@CurrentDate)) ) THEN 1 ELSE 0 END