Я получил этот запрос, который занимает мой elapsed_time, и это работает нормально, но потом я понял, что я неправильно понял значение actual_elapsed. actual_elapsed – это время работы моего таймера, которое я использую с помощью TIMEDIFF (). log_time – это дата-время, это время, когда действие (воспроизведение, пауза) было вставлено / сделано. sequence is int, он сообщает мне, что произошло первым для каждого пользователя. status, также int, сообщает мне, было ли выполнено действие (1), пауза (2) или остановка (3).
Как я уже сказал, моя проблема заключается в получении правильного значения для actual_elapsed с использованием TIMEDIFF (now (), log_time). Было бы здорово, если бы у меня не было паузы.
Пример записи в DB
log_time sequence status 2012-09-27 15:31:02 1 1 2012-09-27 15:31:04 2 2 **2 +** 2012-09-27 15:40:08 3 1 2012-09-27 15:40:45 4 2 **39 +** 2012-09-27 15:40:47 5 1 2012-09-27 15:40:57 6 3 **10 =** **49**
Мой запрос дает мне 09 минут и 57 секунд, когда я получаю только 49 секунд.
Мой запрос SAMPLE.
(" select sequence_num, elapsed_time, status, TIMEDIFF(now(), log_time) as actual_elapsed from tbl");
Я пытаюсь получить продолжительность actual_elapsed. Для этого мне нужно как-то взять общую продолжительность времени перерыва (пауза), а затем получить разницу между elapsed_time и временем разрыва. Но у меня возникают проблемы с этой частью, так как пользователь может приостановить таймер несколько раз.
Это было достаточно просто, когда я разработал свою БД. Как мне обойтись без такого беспорядка?