如何在SQL中計算具有以下格式的稱爲「timeSpent」的我的柱狀圖的時間總和:HH:mm ?我正在使用MySQL。使用sql計算類型時間的總和
我的專欄的類型是時間。
它具有這種結構
TimeFrom like 10:00:00 12:00:00 02:00:00 TimeUntil 08:00:00 09:15:00 01:15:00 Time spent total time 03:15:00
如何在SQL中計算具有以下格式的稱爲「timeSpent」的我的柱狀圖的時間總和:HH:mm ?我正在使用MySQL。使用sql計算類型時間的總和
我的專欄的類型是時間。
它具有這種結構
TimeFrom like 10:00:00 12:00:00 02:00:00 TimeUntil 08:00:00 09:15:00 01:15:00 Time spent total time 03:15:00
如果timeSpent
列的數據類型是TIME
你應該能夠使用以下查詢:
SELECT SUM(timeSpent)
FROM YourTableName -- replace YourTableName with the actual table name
但是,如果情況並非如此,您可能需要使用轉換才能轉換爲Time
數據類型。像這樣的東西應該工作:
SELECT SUM(timeSpent - CAST('0:0:0' as TIME))
FROM YourTableName -- replace YourTableName with the actual table name
沒有不完全是這個運行異常 – kawtousse 2010-06-16 15:56:06
嗯..你可以發佈表格定義和你到目前爲止的查詢嗎? – 2010-06-16 16:02:12
在MySQL中,你會做這樣的事情,以獲得時間間隔:
SELECT TIMEDIFF('08:00:00', '10:00:00');
然後添加的時間間隔,你會怎麼做:
SELECT ADDTIME('01:00:00', '01:30:00');
不幸的是,您沒有存儲日期或使用24小時制,所以這些計算結果會不正確,因爲您的TimeUntil
實際上比您的TimeFrom
要低。
另一種方法是(假設你理清上述問題)的時間間隔爲存儲使用TIMESTAMPDIFF()
秒:
UPDATE my_table SET time_spent=TIMESTAMPDIFF(start, end));
SELECT SEC_TO_TIME(SUM(time_spent)) FROM my_table;
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(`timeSpent`))) AS timeSum
FROM YourTableName
這爲我工作。希望這可以幫助。
它花了很多周圍的網絡,這是我正在尋找的答案。謝謝! – Sevenearths 2016-03-09 10:05:00
謝謝,這是正確的答案 – 2016-06-21 03:14:52
這會產生錯誤的結果。 – 2016-11-21 07:47:52
100%的工作代碼來獲得的時間和出MySQL數據庫:
SELECT
SEC_TO_TIME(SUM(time_to_sec(`db`.`tablename`)))
As timeSum
FROM
`tablename`
嘗試並確認。 謝謝。
RDBMS:mysql。 查詢從mytablename中選擇SUM(timespent)do not't work like like我想要的總和是02:10:30它顯示021030. – kawtousse 2010-06-16 15:20:52
你的意思是你有2 cols timefrom和time直到?你的數據庫是什麼? '來自TableName'的總和(DATEDIFF(minute,timeFrom,timeUntil))' – Inv3r53 2010-06-16 15:21:04
它是由類型時間引起的。 它需要一個特定的功能,我不知道請幫助。 – kawtousse 2010-06-16 15:21:44