mysql有俩个字段一个是记录状态的,另一个是记录状态录入时间的,怎么计算一个状态的持续时间

mysql有俩个字段一个是记录状态的,另一个是记录状态录入时间的,怎么计算一个状态的持续时间

任务ID状态时刻
1初始化2022-03-01 13:26:00
1处理中2022-03-02 14:27:00
1处理完成2022-03-03 15:28:00

以上面这个数据为例,你是想得到 初始化的时间为 处理中的时刻减去初始化的时刻是吧?
这个很典型的是要拿到下一行的记录,那么应该用开窗函数中的lead

select 任务ID,状态,开始时刻, lead(时刻) over(partition by 任务ID order by 时刻) 完成时刻 from 表;

至于计算持续时间,比较开始时刻和完成时刻这两个字段就行了,用timestampdiff这个函数

不同状态的时间差。(根据状态进行分组后,求相邻状态时间差)

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632