您可以使用它来查找两个日期之间的差异:
SELECT
convert(VARCHAR, abs(datediff(second, @date1, @date2) / 60 / 60 / 24))
+ ':' +
convert(VARCHAR, abs(((datediff(second, @date1, @date2) / 60) / 60) % 24))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) / 60) % 60))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) % 60)))
您只需要更改@date1
and@date2
与您需要的日期。
这是一个SQLFiddle,您可以在其中进行测试。
如果您真的想转换为 datetime,请使用:
SELECT
convert(DATETIME,
(convert(VARCHAR, abs(((datediff(second, @date1, @date2) / 60) / 60) % 24))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) / 60) % 60))
+ ':' +
convert(VARCHAR, abs((datediff(second, @date1, @date2) % 60)))
)
+ dateadd(day,
abs(datediff(second, @date1, @date2) / 60 / 60 / 24),
'01-01-1900 00:00:00')
)
这是第二个查询的 SQLFiddle