如何获得
之间的小时数开始时间=' 23:00:00.0000000'
和
SQL SERVER中的结束时间=' 00:00:00.0000000'
?
我尝试使用select DATEDIFF(hour, '23:00:00.0000000','07:00:00.0000000')
,但它返回负数小时 -16 。
我希望结果 8 小时。
答案 0 :(得分:1)
这是一种方式:
SELECT CASE
WHEN DATEDIFF(HOUR,'23:00:00','07:00:00') < 0
THEN 24 + DATEDIFF(HOUR,'23:00:00','07:00:00')
ELSE DATEDIFF(HOUR,'23:00:00','07:00:00')
END
答案 1 :(得分:0)
除了明显的问题,不知道上面发布了多少小时,你可以将它们整合在一起。请记住,这总是假设不到24小时。
select DATEDIFF(hour, @StartTime, case when @EndTime < @StartTime then DATEADD(Day, 1, cast(@EndTime as datetime)) else @EndTime end)