这个问题已经在这里有了答案 :
8年前关闭。
可能重复: 如何使用年,月和日来计算T-SQL中的年龄
我只是尝试使用生日日期变量来计算年龄(以年为单位)
1932-04-29 00:00:00.000
和SQL Server中的SYSDATETIME(),其中
SELECT year(Sysdatetime() - Birthdate) as Age
出品(出乎意料):1980
我错过了什么?我预计会得到80!
计算年龄并不像它初看起来那样简单。
如果使用Datediff,则绝对年份之间的差值不是年龄。
Datediff
例如
select DATEDIFF(yy, '1980-12-31', getdate())
将返回32,而相关人员的年龄为31。
对于您的目的,这可能足够准确。更准确,但仍然有误,您可以使用
select convert(int,DATEDIFF(d, '1933-10-31', getdate())/365.25)
在 大多数情况 下这是正确的。
或者,您可以编写一个更复杂的函数。