2014-03-13 127 views
0

返回時間總和所以我的查詢是這樣的:MySQL查詢超過目前的結果

SELECT TIMEDIFF('24:00:00',(TIMEDIFF('22:00:00',TIME(end)))) AS time 
    FROM sworkingtime 
WHERE user='magdalena' 
     AND type='work' 
     AND start BETWEEN '2014-03-01' 
        AND '2014-03-28' 
     AND (HOUR(`end`) > 22 OR HOUR(`end`) < 4) 
     AND completed=1 

我的查詢返回這樣的:

02:02:36 
03:17:24 
03:07:03 
02:24:17 
03:14:09 

是否有修改此查詢只返回SUM方式這個領域,所以只有一個領域?

謝謝

+0

什麼是你原來的表結構及數據? –

回答

2

您可以使用TIME_TO_SEC()的時間間隔轉換成秒數,求和是,然後用SEC_TO_TIME()來表達結果作爲時間值。

你也可以重新排列TIMEDIFF()表達式只需添加2小時到的end每個值:

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIME(end)) + 2*60*60)) 
FROM sworkingtime 
WHERE user = 'magdalena' 
    AND type = 'work' 
    AND start BETWEEN '2014-03-01' AND '2014-03-28' 
    AND (HOUR(end) > 22 OR HOUR(end) < 4) 
    AND completed = 1 
+0

偉大的作品,這就是我錯過了。謝謝! –