如何计算mysql中一系列行中最小和最大时间值之间的差异

时间:2012-04-16 19:02:11

标签: mysql sql

我在mysql数据库中有以下行:

Object1 2012-03-25 13:02:17         
Object2 2012-03-25 13:02:20         
Object3 2012-03-25 13:03:22         
Object1 2012-03-25 13:03:25         
Object4 2012-03-25 13:03:38         
Object1 2012-03-25 13:03:41         
Object5 2012-03-25 13:03:46         
Object4 2012-03-25 13:04:15         
Object6 2012-03-25 13:09:16         
Object1 2012-03-25 13:10:02         
Object4 2012-03-25 13:10:33         
Object3 2012-03-25 13:26:52         

我想计算一个对象的最早时间和同一个对象的最新时间之间的时间差。

例如,Object1的输出值大约为8秒。

我能用sql完成这个吗?如果是这样的话?如果没有,怎么样?

感谢您的帮助。

4 个答案:

答案 0 :(得分:5)

您可以在任何查询中引用MAX和MIN:

SELECT objectid, DATEDIFF(MAX(time),MIN(time)) as diff
FROM objects
GROUP BY objectid

答案 1 :(得分:2)

SELECT obj, MIN(otime) AS mn, MAX(otime) AS mx, DATEDIFF(MAX(otime),MIN(otime)) AS df
FROM mytable
GROUP BY obj

应该这样做。你不需要mn和mx列,但我喜欢看它们用于检查目的。

答案 2 :(得分:0)

SELECT obj_name, MIN(obj_time) as min_time, MAX(obj_time) as max_time, 
TIMESTAMPDIFF(SECOND, MIN(obj_time),MAX(obj_time)) as diff_seconds
FROM table1
GROUP BY obj_name

答案 3 :(得分:0)

我发现这个答案在下一行比较。这很完美:

Calculate the time difference between of two rows