0

我遇到了timediff和的问题DATE_SUB。这是我的 MYSQL 查询:

SELECT id, clock_user_id, clock_date,

(Select clock_time from aura_clock where aura_clock.clock_type = 'Start' and  
 aura_clock.clock_date = t1.clock_date) as start, (Select clock_time 
 from aura_clock where aura_clock.clock_type = 'Stop' 
 and aura_clock.clock_date =   
 t1.clock_date) as Stop,

问题从这里开始

TIMEDIFF((select clock_time FROM aura_clock t 
WHERE t.clock_date = t1.clock_date AND t.clock_time > t1.clock_time 
ORDER BY t.clock_time LIMIT 1), MIN(clock_time)) as spent

FROM aura_clock t1 WHERE t1.clock_date >= DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 
WEEKDAY(CURDATE()) DAY),INTERVAL 15 day) 
AND t1.clock_date < DATE_SUB(curdate(),INTERVAL DAYOFWEEK(curdate()) + 6 day)

GROUP BY clock_date

结果是:

在此处输入图像描述

现在,我想从使用时间中减去 1 小时,DATE_SUB但它没有用。

4

1 回答 1

2

正如米尔科布兰科维奇 所写:

((TIMEDIFF((select clock_time FROM aura_clock t 
WHERE t.clock_date = t1.clock_date AND t.clock_time > t1.clock_time 
ORDER BY t.clock_time LIMIT 1), MIN(clock_time))) - INTERVAL 1 HOUR) AS new_spent

应该管用

编辑:

我得到的最好的是以秒为单位的时间: http ://sqlfiddle.com/#!2/18160/66/0

很大程度上取决于 MYSQL 版本

于 2013-07-25T12:39:50.753 回答