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 に答える