2013-08-02 131 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

相關問題