TSQL DateDiff返回2位小数的天数

时间:2012-03-01 21:06:37

标签: sql sql-server sql-server-2008

我需要比较2个日期并返回两个小数位之间的天数。

例如:

比较时

SubmittedDate = 2012-02-29 07:02:55.000

FirstCall = 2012-02-29 12:12:19.000

这是一个5小时的差异。所以我会返回0.2天

我试过了:

CAST(DATEDIFF(Hour, SubmittedDate, FirstCall)/30.0 AS DECIMAL(5,2)) As HoursBeforeFirstCall
CAST(DATEDIFF(Day, SubmittedDate, FirstCall) AS DECIMAL(5,2)) As HoursBeforeFirstCall

似乎无效。

4 个答案:

答案 0 :(得分:39)

在几秒钟内取DateDiff,然后除以86400.0。小数点是必需的。

答案 1 :(得分:6)

当您将日期表示为数字时,每天由1.0"单位"表示。已经。要将两个日期的时间跨度作为小数,您可以减去它们。

SELECT CAST((@FirstCall - @SubmittedDate) AS NUMERIC(10, 2))

答案 2 :(得分:1)

这个怎么样。

select convert(decimal(12,2),convert(decimal(12,2),datediff(second,'2012-02-29 07:02:55.000','2012-02-29 12:12:19.000'))/60/60/24)

答案 3 :(得分:0)

以下是我所做的:

ROUND(SUM(DATEDIFF(ss,StartDateTime,EndDateTime) / 60.0 / 60.0), 2)