MySQL:计算不同表行中两个时间戳的差异

标签 mysql sql

我一直在 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 秒。

感谢您的帮助!非常感谢。

最佳答案

你可以试试下面-

DEMO

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/

相关文章:

c# - 我可以使用 Sql Server Express 复制和使用 mdf 文件吗?

java.lang.IllegalStateException 连接到数据库的目标主机不能为空

python - 如何查询描述非规范化表的多个 Django 模型

mysql - 联合选择和分组出现

javascript - 如何在sequelize中使用数据库时区获取当前日期/时间

SQLite where 子句对 TEXT 字段表现奇怪

mysql - 1 个表中的 2 个不同的 AVG 列与选择

sql - 随机分配工作地点,每个地点不得超过指定员 worker 数

MYSql 在连续列中搜索

php - 从 MySQL 表中的 DATETIME 获取正确的日期和时间格式