MySQL如何计算同一张表中相邻两行之间的时间差具体格式如下-查字典问答网
分类选择

来自孙劲光的问题

  MySQL如何计算同一张表中相邻两行之间的时间差具体格式如下,要求出同一个用户的记录中相邻两行的时间差,注意是计算同一个用户的相邻行,感激不尽!user_iddatetime02010-08-1215:50:5402010-08-121

  MySQL如何计算同一张表中相邻两行之间的时间差

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

  user_iddatetime

  02010-08-1215:50:54

  02010-08-1219:40:25

  02010-08-1307:53:34

  12010-08-1219:40:25

  12010-08-1304:35:28

3回答
2020-10-1907:02
我要回答
提示:回答问题需要登录哦!
蔡鸿明

  多行的你怎么算?应该是一个用户的最大和最小时间差吧?说下规则

2020-10-19 07:03:57
孙劲光

  就是要统计相邻两条记录间的时间间隔……针对给出的5条记录,那就是算出0号用户的两个时间间隔以及1号用户的一个时间间隔……结果随便存入哪儿都ok,可以建个新表来存,也可以存txt,目的就是为了统计相邻的时间间隔的分布特征……

  感觉用Mysql存储过程应该可以实现吧,不过我目前还没学会……求指教!感谢!

2020-10-19 07:06:36
蔡鸿明

  createprocedureproc_t()

  begin

  createtablet_test1(

  rowidbigintauto_incrementprimarykey,

  user_idvarchar(20),

  datetimedatetime

  );

  truncateTABLEt_test1;

  insertintot_test1(user_id,datetime)selectuser_id,datetimefromtest1orderbyuser_id;

  select

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

  (selectc.datetimefromt_test1cwherec.user_ id=a.user_idandc.rowid>a.rowidlimit1)'下行日期',

  TIMESTAMPDIFF(HOUR,str_to_date(a.datetime,'%Y-%m-%d%T'),str_to_date((selectb.datetimefromt_test1bwhereb.user_ id=a.user_idandb.rowid>a.rowidlimit1),'%Y-%m-%d%T'))'时间差'

  fromt_test1a;

  droptablet_test1;

  end

  运行结果

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

  02014-07-0801:11:002014-07-0807:11:20x096

  02014-07-0807:11:202014-07-1000:11:41x0941

  02014-07-1000:11:41

  12014-07-0803:11:002014-07-0902:10:0022

  12014-07-0902:10:00

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

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

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

2020-10-19 07:08:34
大家都在问
最新问答