2013-05-07 198 views
4

我在MySQL中有一個表格,包含開始和停止時間。選擇兩行中兩個unix時間戳之間的差異

我想鍛鍊從停止到下一次開始的時間。

我已經做了sqlfiddle我的表 http://sqlfiddle.com/#!2/2c043/1

ID start_time end_time 
410 1367894268 1367898275 
409 1367893164 1367894268 
408 1367888257 1367893153 
407 1367837969 1367888247 

,所以我想要做的是什麼

end_time from row 410 - the start_time from row 409 
1367898275 - 1367893164 

和像

end_time  start_time time_duration 
1367898275 1367893164 5111 

感謝您的幫助輸出。

回答

2

TRY像下面,它會幫助你

SQL FIDDLE:http://sqlfiddle.com/#!2/2c043/26

SELECT 
A.idtrip_data, 
A.start_time, 
B.end_time, 
(B.end_time - a.start_time) AS timedifference 
FROM myTable A 
INNER JOIN myTable B 
ON B.idtrip_data = (A.idtrip_data + 1) 
ORDER BY A.idtrip_data ASC 
+0

如果不是順序的話就不會工作 – tgkprog 2013-05-07 06:23:57

2

要實現你問什麼嘗試以下操作:

SELECT (B.start_time - A.end_time) AS time_duration 
FROM MyTable A INNER JOIN MyTable B ON B.ID = (A.ID + 1) 
ORDER BY A.ID ASC 

IF ID是不連續的,那麼你可以使用

SELECT (B.start_time - A.end_time) AS time_duration 
FROM MyTable A CROSS JOIN MyTable B 
WHERE B.ID IN (SELECT MIN (C.ID) FROM MyTable C WHERE C.ID > A.ID) 
ORDER BY A.ID ASC 
+0

+1看起來被刪除的行 – tgkprog 2013-05-07 06:16:58

相關問題