MySQL: вычислить разницу двух временных меток в разных строках таблицы - PullRequest
2 голосов
/ 19 июня 2019

Я продолжаю искать в StackOverflow похожий вопрос, но мне кажется, что я не могу его найти.Я хотел бы знать разницу между временными метками в разных строках, сгруппированных по идентификатору сотрудника.

Таблица журналов времени:

id        timestamp             log_type
 1    2019-06-19 12:34:50        log_in
 2    2019-06-19 13:12:46       start_break 
 3    2019-06-19 13:13:56        end_break
 4    2019-06-19 17:23:40       start_break
 5    2019-06-19 17:44:36        end_break
 6    2019-06-19 19:00:04       start_break
 7    2019-06-19 19:03:17         end_break
 8    2019-06-19 20:05:54        log_out

То, что я пытаюсь сделать, - это рассчитать всю продолжительность перерывов.В этом случае 1-й перерыв (id # 2 и # 3) составляет 1 минуту и ​​10 секунд, 2-й перерыв (id # 4 и # 5) - 20 минут и 56 секунд, 3-й перерыв (id # 6 и # 7) - 3минут и 13 секунд, то есть всего 25 минут и 19 секунд.

Спасибо за помощь!Очень ценится.

1 Ответ

1 голос
/ 19 июня 2019

Вы можете попробовать ниже -

ДЕМО

select SEC_TO_TIME(sum(diff)) as result from
(
select  
timestampdiff(second,min(case when log_tpe='start_break' then timestamps end) ,
min(case when log_tpe='end_break' then timestamps end)) as diff
from t
group by date(timestamps),hour(timestamps)
)A

ВЫХОД:

result
00:25:19
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...