基本上,我想要相当于.NET的TimeSpan.TotalMilliseconds
,但是对于SQLServer中的TIME数据类型。我能想到的最好的是:
DATEDIFF(ms, CONVERT(DATE, CONVERT(DATETIME2, value)), CONVERT(DATETIME2, value))
然而,这是非常冗长且非常明显的。是否有更简洁/内置的方法来做到这一点?
答案 0 :(得分:8)
除非我在您的问题中遗漏了某些内容,否则您甚至根本不需要CONVERT
。 DATEDIFF()
函数支持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