我是一个菜鸟,正在尝试编写一个 Sql 来计算下表中不同开始日期之间的时间范围。
ID StartDate
202151080 3/27/2014 0:00
202151080 5/16/2014 0:00
202151080 10/27/2014 0:00
我的预期输出是
ID StartDate interval
202151080 3/27/2014 0:00 0
202151080 5/16/2014 0:00 50
202151080 10/27/2014 0:00 164
我可以提出静态..如下所示..我正在努力计算与阅读表的差异。
SELECT id, datediff(dd,'2014-03-27 00:00:00','2014-05-16 00:00:00');
感谢您的宝贵时间。
最佳答案
您可以为此使用相关子查询:
SELECT ID, StartDate,
COALESCE(DATEDIFF(StartDate,
(SELECT StartDate
FROM mytable AS t2
WHERE t2.ID = t1.ID AND t2.StartDate < t1.StartDate
ORDER BY StartDate DESC LIMIT 1)), 0) AS `interval`
FROM mytable AS t1
ORDER BY StartDate
关于mysql - 在SQL中计算事件之间的时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36186173/