DATEDIFF()秒,以毫秒为单位浮点或十进制

时间:2014-07-17 13:41:31

标签: sql-server-2008 tsql datetime type-conversion

如何将以下代码转换为float或decimal类型?

SELECT DATEDIFF(ss, StartTime, GETDATE()) + '.' + 
       DATEDIFF(ms, StartTime, GETDATE())

1 个答案:

答案 0 :(得分:3)

这就是我需要的。 CONVERT(float, DATEDIFF(ms, StartTime, GETDATE()) / 1000.0)

我的问题的代码是完全错误的,因为DATEDIFF(ms, StartTime, GETDATE())返回两个日期之间的总毫秒数,而不是因为我认为只有毫秒部分的差异。

如果我在两个表达式中使用DATEPART而不是DATEDIFF,我的问题代码就可以了。

DATEPART(ss, GETDATE()) - DATEPART(ss, @StartTime) + '.' 
+  DATEPART(ms, GETDATE())  - DATEPART(ms, @StartTime)