将当前年龄转换为小数

Rin*_*inu 2 sql sql-server

我可以从出生日期得到当前年龄。但我有一个要求,我需要将当前年龄转换为具有两位小数的数字。

例如:36年零6个月又15天应该是36.55。

我怎样才能做到这一点 ?

Tim*_*sen 5

使用DATEDIFF:

SELECT CAST(DATEDIFF(DAY, birthday, GETDATE()) / 365.25 AS DECIMAL (10,2))
FROM yourTable
Run Code Online (Sandbox Code Playgroud)

这会计算出生日期与现在之间的天数,转换为年数,然后将该数字四舍五入到小数点后两位。

您的脚本可能如下所示:

DECLARE @dateOfBirth DATETIME
SET @dateOfBirth = '1987-05-25'
DECLARE @age DECIMAL (10, 2)
SET @age = (SELECT CAST(DATEDIFF(DAY, @dateOfBirth, GETDATE()) / 365.25 AS DECIMAL (10,2))
            FROM yourTable)
Run Code Online (Sandbox Code Playgroud)