2016-07-05 26 views
1

我試圖創建一個查詢來總結用戶分組的時間,結果應該在幾分鐘內。表使用MySQL的時間列的SUM()

內容:

duration user 00:06:00 user1 00:06:00 user2 00:04:00 user3 00:01:00 user55 00:02:00 user1 00:01:00 user2 00:01:00 user55

結果預計:

duration user 8 user1 7 user2 4 user3 2 user55

這是接近我可以得到:

SELECT user, SEC_TO_TIME(SUM(TIME_TO_SEC(時間))) AS totaltime from salientes group by user

但是,這會將結果輸出爲000:00:00,並且在某些情況下,這會以838:59:59結束。

任何幫助將不勝感激。

回答

2
mysql> SELECT MINUTE(SEC_TO_TIME(SUM(TIME_TO_SEC(duration)))) 
    as tt ,user from tt group by user; 
    +------+--------+ 
    | tt | user | 
    +------+--------+ 
    | 8 | user1 | 
    | 7 | user2 | 
    | 4 | user3 | 
    | 2 | user55 | 
    +------+--------+ 
    4 rows in set (0.00 sec) 
+0

試試這個,讓我知道 –

+0

這完全按照要求工作,但顯示59爲最大值。 – Facu2138

+0

是它獲取該列值作爲分鐘,所以最大分鐘值是59;) –

1

TIME_TO_SEC只有轉換的時間段,所以你最終與大底片如果時鐘過了午夜。用UNIX_TIMESTAMP來代替。例如SEC_TO_TIME最大值超過3020399秒,例如SELECT TIME_TO_SEC(SEC_TO_TIME(3020400));如果你看到這個值838:59:59,你已達到最大值,可能只需要除以3600即可顯示小時。