DATEDIFF()只返回2位小数点的年龄

时间:2017-09-06 13:54:02

标签: sql sql-server tsql

我有一个SELECT语句,在进行测试时请求他个人的年龄:

SELECT
   DATEDIFF(dd,BIRTH_DATE,TEST_DATE)/365.25 [Age at Result]
FROM TABLE
WHERE ID = '100'

结果如2.056125

我在另一个post上看到转换为秒并除以86400.0,但我仍然得到6个小数点。

我要回顾的是将年龄定为2.05,甚至是2.00

由于

2 个答案:

答案 0 :(得分:1)

您可以使用所需的精度转换为小数:

SELECT CAST(DATEDIFF(day, BIRTH_DATE, TEST_DATE)/365.25 as DECIMAL(10, 2)) as [Age at Result]
FROM TABLE
WHERE ID = 100;

注意:我删除了“100”附近的单引号。如果id是字符串,则仅使用单引号。

答案 1 :(得分:1)

我会使用以下内容 -

DECLARE @TestDate DATETIME = GETDATE()
DECLARE @BirthDate DATETIME = '1995-06-06 08:00:00.000'

SELECT CAST(DATEDIFF(dd,@BirthDate,@TestDate)/365.25 AS DECIMAL(10, 2)) [Age at Result]
相关问题