我已經寫了一個查詢,但沒有給出正確的答案。我想顯示像這樣 5小時58分鐘+7小時58分鐘= 13小時56分鐘(回答應該13.56
),但下面的查詢給出15.09
。SQL Server 2008中小時和分鐘的總和
請與任何其他解決方案回答我。(這裏Effort1
爲5小時列,Effort1Minutes
爲58分鐘列和相同Effort2
是7小時列,Effort2Minutes
58分鐘列。
select CAST((SUM(Effort1)*60+SUM(Effort1Minutes))/60 as float) +
(CAST((SUM(Effort1)*60+SUM(Effort1Minutes))% 60 as float))/100 +
CAST((SUM(Effort2)*60+SUM(Effort2Minutes))/60 as float) +
(CAST((SUM(Effort2)*60+SUM(Effort2Minutes))% 60 as float))/100
from TimesheetDetails
這是否提供幫助? http://stackoverflow.com/questions/16662784/minutesinteger-conversion-to-hoursfloat-in-hh-mm-format-in-sql-server-2008?rq=1 – Leptonator
這個問題在SQL Server中不容易解決 - 你必須在那裏解決它嗎? SQL Server有一個'time'數據類型,但是這是一天中的一段時間,而不是一段時間 - 而且你在這裏做的是真的將兩個時間間隔加在一起 - 所以儘管可能一起迴避一些事情(假設你永遠不會24小時溢出),最好用一種具有代表你正在使用的概念的適當類型的語言來完成。 –
請看更新我的回答 –