0

我在将时间转换为十进制时遇到了几个问题...

本质上,我使用 DATEDIFF 来识别两个日期和时间之间的小时和分钟。这会产生 5.45 的结果,但是我想得到 5.75 的结果。

select RTRIM(DATEDIFF(second, startdate, enddate)/3600)+'.'
+ RIGHT('0'+RTRIM((DATEDIFF(second, startdate, enddate) % 3600)/60),2)
from time

我尝试了一些事情,但我认为问题在于这不是整数,这就是我无法转换分钟的原因。

4

3 回答 3

2

以分钟为单位获取时差,然后除以 60,这将把小时放在小数点分隔符之前和分钟之后:

datediff(minute, startdate, enddate) / 60.0
于 2012-11-29T00:23:05.133 回答
1
Select DATEDIFF(second,  startdate, enddate)/3600.0
于 2012-11-29T00:21:53.080 回答
0

this answer中所述,“以秒为单位取DateDiff,然后除以86400.0。需要小数点。”

于 2012-11-29T00:17:02.060 回答