解决方法
其他答案都没有实际计算年龄.他们正在计算年度边界而不考虑生日.
要计算年龄,您需要执行以下操作:
DECLARE @d DATETIME SET @d = CONVERT(DATETIME,CONVERT(VARCHAR(8),19600518),112) SELECT DATEDIFF(year,@d,GETDATE()) - CASE WHEN DATEADD(year,DATEDIFF(year,GETDATE()),@d) <= GETDATE() THEN 0 ELSE 1 END AS Age