sql-server - 如何从 TIME 值中获取总毫秒数

标签 sql-server time

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

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

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

最佳答案

除非我在您的问题中遗漏了某些内容,否则您根本不需要执行 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

关于sql-server - 如何从 TIME 值中获取总毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110423/

相关文章:

sql - select 语句中的 where 子句 - 日期时间问题

MySQL:GROUP BY特定时间段(重叠天数)

time - 18小时Cron问题

.net - 如何解决间歇性 SQL 超时错误

SQL:合并结果列

sql-server - 应用程序服务器上需要 SET IDENTITY_INSERT ON/OFF,但 ALTER 权限似乎很危险。建议?

javascript - 如何使用 0 :00:00 format? 递增数字

php - 查询以在表中的间隔内计数

python - 值错误 : time data does not match format when parsing a date

c# - 如何在 .NET 中使用自定义格式对 TimeSpan 对象进行 String.Format ?