我一直在 StackOverflow 上寻找类似的问题,但似乎找不到。我想知道按员工 ID 分组的不同行中的时间戳之间的区别。
时间日志表:
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
我想要完成的是计算所有休息时间。在这种情况下,第一次休息(id #2 和 #3)是 1 分 10 秒,第二次休息(id #4 和 #5)是 20 分 56 秒,第三次休息(id #6 和 #7)是 3分 13 秒,总计 25 分 19 秒。
感谢您的帮助!非常感谢。
最佳答案
你可以试试下面-
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
关于MySQL:计算不同表行中两个时间戳的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56661369/