开发者社区> 问答> 正文

计算两行之间的时间差?mysql

我有一个带有StartDate列的表,我想计算两个连续记录之间的时间差。

谢谢。

@ Mark Byers和@ Yahia,我将请求表作为requestId,startdate

requestId startdate
1 2011-10-16 13:15:56 2 2011-10-16 13:15:59 3 2011-10-16 13:15:59 4 2011-10-16 13:16:02 5 2011-10-16 13:18:07 我想知道requestid 1和2、2和3、3和4等之间的时差是多少。我知道我需要在表上进行自我连接,但是我在子句上没有得到正确的支持。

展开
收起
保持可爱mmm 2020-05-17 14:02:56 623 0
1 条回答
写回答
取消 提交回答
  • 要实现您的要求,请尝试以下操作(从OP编辑后进行更新):

    SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A INNER JOIN MyTable B ON B.requestid = (A.requestid + 1) ORDER BY A.requestid ASC 如果requestid不是连续的,则可以使用

    SELECT A.requestid, A.starttime, (B.starttime - A.starttime) AS timedifference FROM MyTable A CROSS JOIN MyTable B WHERE B.requestid IN (SELECT MIN (C.requestid) FROM MyTable C WHERE C.requestid > A.requestid) ORDER BY A.requestid ASC来源:stack overflow

    2020-05-17 14:09:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像