DECLARE @Birthday DATETIME = '1992-07-30';
SELECT CASE WHEN DATEPART(MONTH, GETDATE()) > DATEPART(MONTH, @Birthday) THEN DATEDIFF(YEAR, @Birthday, GETDATE()) --当前时间月份大于生日月份
WHEN DATEPART(MONTH, GETDATE()) = DATEPART(MONTH, @Birthday) THEN(CASE WHEN DATEPART(DAY, GETDATE()) > DATEPART(DAY, @Birthday) THEN DATEDIFF(YEAR, @Birthday, GETDATE()) ELSE DATEDIFF(YEAR, @Birthday, GETDATE()) - 1 END )--当前时间月份等于生日月份
ELSE DATEDIFF(YEAR, @Birthday, GETDATE()) - 1 END AS Age;--当前时间月份小于生日月份
上面是根据生日计算年龄的SQL语句,精确到天,但没考虑2月闰年的情况,欢迎补充!