本质上,我想要相当于.NET TimeSpan.TotalMilliseconds
,但是对于SQLServer中的TIME数据类型.我能想到的最好的是:
DATEDIFF(ms, CONVERT(DATE, CONVERT(DATETIME2, value)), CONVERT(DATETIME2, value))
Run Code Online (Sandbox Code Playgroud)
然而,这是非常冗长且非常明显的.是否有更简洁/内置的方法来做到这一点?
除非我在你的问题中遗漏了什么,否则你根本不需要做任何CONVERT
事情.该DATEDIFF()
函数支持TIME
数据类型:
Declare @T1 Time = '01:00:00',
@T2 Time = '01:00:01'
Select DateDiff(Millisecond, @T1, @T2)
Run Code Online (Sandbox Code Playgroud)
1000
Declare @T1 Time = '01:00:00.000',
@T2 Time = '01:00:00.123'
Select DateDiff(Millisecond, @T1, @T2)
Run Code Online (Sandbox Code Playgroud)
123