如何从TIME值获取总毫秒数

时间:2016-10-18 14:04:59

标签: sql-server time

基本上,我想要相当于.NET的TimeSpan.TotalMilliseconds,但是对于SQLServer中的TIME数据类型。我能想到的最好的是:

DATEDIFF(ms, CONVERT(DATE, CONVERT(DATETIME2, value)), CONVERT(DATETIME2, value))

然而,这是非常冗长且非常明显的。是否有更简洁/内置的方法来做到这一点?

1 个答案:

答案 0 :(得分:8)

除非我在您的问题中遗漏了某些内容,否则您甚至根本不需要CONVERTDATEDIFF()函数支持TIME数据类型:

Declare @T1 Time = '01:00:00',
        @T2 Time = '01:00:01'

Select  DateDiff(Millisecond, @T1, @T2)
  

1000

Declare @T1 Time = '01:00:00.000',
        @T2 Time = '01:00:00.123'

Select  DateDiff(Millisecond, @T1, @T2)
  

123