本质上,我想要等效于 .NET 的 TimeSpan.TotalMilliseconds
,但对于 SQLServer 中的 TIME 数据类型。我能想到的最好的是:
DATEDIFF(ms, CONVERT(DATE, CONVERT(DATETIME2, value)), CONVERT(DATETIME2, value))
但是,这非常冗长且非常不明显。有没有更简洁/内置的方法来做到这一点?
最佳答案
除非我在您的问题中遗漏了某些内容,否则您根本不需要执行 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
关于sql-server - 如何从 TIME 值中获取总毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110423/