如何计算两个日期之间的时差? - MySql

时间:2012-02-06 11:59:21

标签: mysql datetime

code    id                  date               time difference   
AiK4JJ  kcy2000ok   2012-01-31 17:25:41         13    
unBG1D  gktoql      2012-01-31 17:25:35          3    
vzqeWU  gktoql      2012-01-31 17:25:32          4    
vvkOSd  judyssi     2012-01-31 17:25:32          8    
uwhbGt  kcy2000ok   2012-01-31 17:25:28 ?    
unBG1D  gktoql      2012-01-31 17:25:27         ?    
vvkOSd  judyssi     2012-01-31 17:25:24         ?

我想根据id计算最近日期和上一日期之间的时差。

如果你看一下kcy2000ok,最后一行的时差是13秒。

gktoql的时差是最后一行的3秒。

我需要根据id来计算时差。

你能帮我构建MySql查询吗?

2 个答案:

答案 0 :(得分:3)

SELECT id, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time) as difference FROM <your-table-name>

<强>附录: 在你编辑它之前,你的问题有点难以理解。所以要明确这一点:如果你想计算按id分组的最小差异,你可以这样做:

SELECT 
  id,
  MIN(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time)) as difference
FROM your_table_name
GROUP BY id 

答案 1 :(得分:0)

如果您的意思是找到自每个用户的最新记录以来的秒数:

SELECT id, min(UNIX_TIMESTAMP() - UNIX_TIMESTAMP(time))
GROUP BY id

或者获取每个用户的最新记录:

SELECT * FROM (
    SELECT *
    FROM mytable
    ORDER BY `date` desc) x
GROUP BY id