mysql 同一张表内 相邻行 求差_MySQL如何计算同一张表中相邻两行之间的时间差具体格式如下,要求出同一个用户的记录中相邻两行的时间差,注意是计算同一个用户的相邻行,感激不尽!user_idda...

追答:

create procedure proc_t()

begin

create table t_test1 (

rowid bigint auto_increment primary key,

user_id varchar(20),

datetime datetime

);

truncate TABLE t_test1;

insert into t_test1 (user_id,datetime ) select user_id,datetime from test1 order by user_id;

select

a.user_id '用户id',a.datetime '当前日期',

(select c.datetime from t_test1 c where c.user_id = a.user_id and c.rowid>a.rowid limit 1) '下行日期',

TIMESTAMPDIFF(HOUR,str_to_date(a.datetime,'%Y-%m-%d %T'),str_to_date((select b.datetime from t_test1 b where b.user_id = a.user_id and b.rowid>a.rowid limit 1),'%Y-%m-%d %T')) '时间差'

from t_test1 a;

drop table t_test1;

end

运行结果

用户id 当前日期 下行日期 时间差

0 2014-07-08 01:11:00 2014-07-08 07:11:20\x09 6

0 2014-07-08 07:11:20 2014-07-10 00:11:41\x09 41

0 2014-07-10 00:11:41

1 2014-07-08 03:11:00 2014-07-09 02:10:00 22

1 2014-07-09 02:10:00

计算相邻时间差,用的存储过程

时间差单位小时,如果要精确到秒的话自己完善吧

你这个要是有一个自增id的主键的话就不用存储过程,一句sql搞定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值