我似乎无法从SQL Server 2016中了解如何从varchar
列获取总小时数。
查询:
SELECT taakuren
FROM taken
返回
10:00
12:15
26:00
40:00
我希望它返回
88:15
我已经尝试了以下查询,但是当它超过24小时时总会出现问题
select Convert(Varchar, (Convert(DateTime, taakuren)), 114) as TotalTime
from taken
答案 0 :(得分:2)
基本上,time
数据类型会在24小时后逐渐消失。如果你想要更多的时间,那么你可能不得不求助于你自己的算术:
select cast(sum(hours * 60 + minutes) / 60 as varchar(10)) + ':' +
right('00' + cast(sum(hours * 60 + minutes) % 60 as varchar(10)))
from taken t outer apply
(values (left(t.taakuren, 2) + 0, right(t.taakuren, 2) + 0)
) v(hours, minutes);
答案 1 :(得分:0)
更新我的代码是:
select cast(sum(hours * 60 + minutes) / 60 as varchar(10)) + ':' +
cast(sum(hours * 60 + minutes) % 60 as varchar(10))
from taken t outer apply
(values (left(t.taakuren, 2) + 0, SUBSTRING(t.taakuren, 4,6) + 0)
) v(hours, minutes)