我正在使用SQL Server 2012,并且我有两列start
和end
,它们的varchar(5)
值为HH:MM
格式。
数据看起来像这样
ID Start End
------------------------
1 00:00 06:00
2 06:00 16:00
3 16:00 18:00
4 18:00 24:00
我的查询是这样的:
SELECT
a.start,
a.[end],
RIGHT('0' + CONVERT(VARCHAR(3), DATEDIFF(MINUTE, a.Start, a.[end]) / 60), 2) + ':' +
RIGHT('0' + CONVERT(VARCHAR(2), DATEDIFF(MINUTE, a.Start, a.[end]) % 60), 2) AS TotalHours
FROM
TransactionActivity a
我使用基于ID号的where子句执行查询,它给我正确的结果,直到ID 4:我遇到这样的错误
从字符串转换日期和/或时间时转换失败。
我认为是因为“结束时间”值为24:00,如何才能获得时差?
答案 0 :(得分:1)
我认为最好将它们转换为完整的日期时间(使用任意日期),因为这样日期函数才能正常工作。
None