2016-11-14 34 views
0

我似乎無法找出如何從varchar列從SQL Server獲得的總小時數2016SQL總學時

查詢:

SELECT taakuren 
FROM taken 

返回

10:00  
12:15  
26:00  
40:00 

我想它返回

88:15 

我已經在24小時嘗試的東西像下面的查詢,但一個總是與問題最終當它到達過去的24小時

select Convert(Varchar, (Convert(DateTime, taakuren)), 114) as TotalTime 
from taken 

回答

2

基本上,time數據類型逐漸消失。如果你想要更多的時間,那麼你可能不得不求助於自己的算術:

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); 
+0

黨!現在很快。在我創建測試用例的時候,你已經有了一個可行的例子!向你學習很好。 – zedfoxus

+0

真棒!那快你的好:)現在只需要總時數88:0。 – user2433624

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)