2014-03-13 71 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

伟大的作品,这就是我错过了。谢谢! –