2013-08-02 124 views
0

是否可以计算同一字段中时间戳的时差?我的SQL知识并不差,但我无法弄清楚如何在同一张桌子上做这样的事情。Mysql计算同一字段中时间戳之间的时间差异?

ID, SENSOR, COUNT, TIMESTAMP 
'1461630', '1', '91', '2013-08-02 09:14:30' 
'1461629', '1', '92', '2013-08-02 09:13:29' 
'1461628', '1', '92', '2013-08-02 09:12:27' 
'1461627', '1', '91', '2013-08-02 09:11:26' 
'1461626', '1', '91', '2013-08-02 09:10:24' 
'1461625', '1', '7', '2013-08-02 09:03:14' 
'1461624', '1', '13', '2013-08-02 09:02:12' 
'1461623', '1', '13', '2013-08-02 09:01:11' 
'1461622', '1', '7', '2013-08-02 09:00:09' 
'1461621', '1', '3', '2013-08-02 08:58:06' 

我需要做的是显示一个饼图与UP与倒数时间值。我只有1个表格可供参考,因此只需要分钟间隔,只给出上面的时间戳。

具体来说,随着时间的推移,机器大约没有运行7分钟。这是我必须弄清楚的7分钟。

'1461626', '1', '91', '2013-08-02 09:10:24' 
'1461625', '1', '7', '2013-08-02 09:03:14' 

这可能吗?或者我真的需要在单独的表格中使用吹风机账户?显然,我宁愿不创建更多的表格,因为我正在使用的设备非常有限,并且它已经将这些数据报告给我运行的tcp服务器,这已经是一个巨大的打击。

显然TIMESTAMPDIFF(,)不起作用,因为我需要两个参考点,而我只有一个参考点。我在想象一些不合适的子选择情景,但我不确定。

干杯!

回答

2

您可以自联接表,像这样的工作,你的情况:

SELECT 
* 
FROM 
yourTable a 
INNER JOIN yourTable b ON a.ID = b.ID + 1 
WHERE TIMESTAMPDIFF(second, a.timestamp, b.timestamp) > 60 

但是,这会变得非常恶劣,当你有你的ID列的差距。特别是当您的数据有* 批号时,它会变得很难看(在性能方面(当您没有良好的表格索引时)。

所以,我建议使用更高级的查询使用变量。无需加入表本身这个通常运行非常快:

SELECT * FROM (
SELECT 
yt.*, 
TIMESTAMPDIFF(second, @prevTS, `timestamp`) AS timedifference, 
@prevTS:=yt.`timestamp` 
FROM 
yourTable yt 
, (SELECT @prevTS:=(SELECT MIN(`timestamp`) FROM yourTable)) vars 
ORDER BY ID 
)subquery_alias 
WHERE timedifference > 65 

为了进一步提高该查询,显示两行,其中为TimeDifference太大不应该是一个问题:)当你陷入严重的困境时,随时提问。

+0

优秀的答案,谢谢! :)是的,我实际上刚刚写完自我加入,我认为它看起来很杂乱,但它非常相似! SELECT lu_sensor_log.ID,lu_sensor_log.BOX_COUNT,lu_sensor_log.'TIME',TIMEDIFF(lu_sensor_log.'TIME',t2.'TIME')AS Difference FROM lu_sensor_log LEFT JOIN lu_sensor_log as t2 ON t2.ID = lu_sensor_log.ID-1 ORDER BY lu_sensor_log.'TIME' DESC; – LokiSinclair

+0

@fancyPants我刚刚看到你的答案,我想知道你是否可以回答[this](http://stackoverflow.com/questions/27152671/how-to-compare-ids-in-the-same-table-without-加入mysql)的问题:) 我基于你的答案我的代码,但我失去了一些东西。 – sokras

+0

如果ID不是主键并且可以有多个具有相同ID的元组,那么会发生什么? – sokras

相关问题