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