2013-02-11 67 views
1

我有一系列記錄插入到日誌中。每個系列由一個id標識。所以MySQL從第一個和第n個記錄獲取時間差異

SELECT * FROM log WHERE action_id = x ORDER by created; 

但我想獲得第一個記錄插入,最後。這些記錄具有創建的時間戳。所以我想以秒爲單位找到第一張和最後一張唱片的區別。

更新:

我已經試過

SELECT max(created) - min(created) FROM log WHERE action_id = 21 ORDER BY created; 

它返回0.000000

這兩個時間差顯然是幾分鐘。

max(created) min(created) 
"2013-02-11 14:30:34" "2013-02-11 14:27:31" 

其存儲爲DATETIME。引擎是InnoDB。

+0

[你有什麼嘗試?](http://www.whathaveyoutried.com/)請參閱[問問建議](http://stackoverflow.com/questions/ask-advice),請。 – 2013-02-11 14:37:50

+0

'SELECT max(timestamp) - min(timestamp)'? – 2013-02-11 14:38:11

+0

你可以通過max(時間戳)和第一個分鐘(時間戳)和差異通過SELECT max(timestamp) - min(timestamp) – justMe 2013-02-11 14:40:12

回答

1

我猜想created被存儲爲一個字符串。

試試這個:

select max(cast(created as datetime)) - min(cast(created as datetime)) 

如果你嘗試類似:

select '2012-01-01 10:44' - '2012-01-01 10:41' 

你會得到0的MySQL的值轉換的串號,2012年停止,然後採取區別。

+0

它存儲爲DATETIME。引擎是InnoDB。 – madphp 2013-02-11 14:48:22

+0

oohhh好吧,它是一個DATETIME字段,但它不是一個時間戳。現在就試試。 – madphp 2013-02-11 14:49:21

+0

另外,你確定'where'子句選擇多行嗎? – 2013-02-11 14:50:23

相關問題