TSQL DateDiff返回2位小数的天数

Int*_*eer 28 sql sql-server sql-server-2008

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

例如:

比较时

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

FirstCall = 2012-02-29 12:12:19.000
Run Code Online (Sandbox Code Playgroud)

这是一个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
Run Code Online (Sandbox Code Playgroud)

似乎没有工作.

Joh*_*ick 46

DateDiff秒为单位,然后除以86400.0.小数点是必需的.

  • 您可以尝试使用 2 位小数(并不是说它在性能方面是最有效的): SELECT CAST((DATEDIFF(s,'2018-07-01 09:00 AM',GETDATE()) / 86400.0) AS DECIMAL (6,2)) (2认同)

Jac*_*Ace 7

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

SELECT CAST((@FirstCall - @SubmittedDate) AS NUMERIC(10, 2))
Run Code Online (Sandbox Code Playgroud)