MySQL计算相邻两条记录的时间差

作者: 5473 分类: MySQL 发布时间: 2018-12-07 21:20 阅读数:788

原始数据

id user_id crt_tm
1 100 2018/12/7 10:53:32
2 100 2018/12/7 12:53:43
3 100 2018/12/7 12:53:47
4 100 2018/12/7 13:43:55
5 100 2018/12/7 17:13:29
6 100 2018/12/7 20:54:03

解决思路

虚拟2个表,一个序号从1开始,一个序号从2开始即可。

sql>SELECT t.*,(@i := @i + 1) as serial_no FROM `tst` t,(select @i := 1) m;

id user_id crt_tm serial_no
1 100 2018/12/7 10:53:32 2
2 100 2018/12/7 12:53:43 3
3 100 2018/12/7 12:53:47 4
4 100 2018/12/7 13:43:55 5
5 100 2018/12/7 17:13:29 6
6 100 2018/12/7 20:54:03 7

sql>SELECT t.*,(@j := @j + 1) as serial_no FROM `tst` t,(select @j := 0) m;

id user_id crt_tm serial_no
1 100 2018/12/7 10:53:32 1
2 100 2018/12/7 12:53:43 2
3 100 2018/12/7 12:53:47 3
4 100 2018/12/7 13:43:55 4
5 100 2018/12/7 17:13:29 5
6 100 2018/12/7 20:54:03 6

最终SQL如下:

user_id crt_tm sub_seconds
100 2018/12/7 10:53:32 7211
100 2018/12/7 12:53:43 4
100 2018/12/7 12:53:47 3008
100 2018/12/7 13:43:55 12574
100 2018/12/7 17:13:29 13234
100 2018/12/7 20:54:03

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注