2017-04-24 84 views
0

我想計算我的表中2行之間的時間差。行之間的MySQL日期時間

表是用ID和時間的基本表:

Id_op Heure_deb    Id_act Type  TIMEDIFF 

OP1 2017-04-21 10:35:53 ACT4 Classique 
OP1 2017-04-21 10:36:22 ACT3 Formateur 
OP1 2017-04-21 14:44:13 ACT1 Classique 
OP2 2017-04-21 14:43:54 ACT1 Classique 
OP2 2017-04-21 14:44:08 ACT2 Classique 
OP2 2017-04-21 14:44:30 ACT2 Classique 
OP2 2017-04-21 14:44:34 ACT4 Classique 
OP2 2017-04-24 09:11:57 ACT3 Classique 

我知道該功能lag(),但它不使用MySQL的...

你有一個解決方案?

+1

問題是不夠的更新所需輸出和其列你想獲得差異 –

+0

OK對不起,其實這臺控制一些活動的持續時間,我想計算連續2行之間的時間。日期表示此活動的開始。活動的數量並不重要,只是連續行之間的時間很重要 –

回答

1

使用TIME_TO_SEC其次是TIMEDIFF()

SELECT a.columns_to_select, TIME_TO_SEC(TIMEDIFF(a.Heure_deb, b.Heure_deb)) as Time_Difference 
FROM basic_table a 
LEFT JOIN basic_table b ON a.unique_column = b.unique_column 
WHERE 
a.id = some_value 
AND 
b.id = some_value 
+0

Thx但您的解決方案工作如果我的主鍵是Id_op和Heure_deb?我認爲解決方案是用左連接,我不掌握這個 –

+0

好的做法是你應該有一個表的主鍵。如果沒有比較你認爲唯一的所有值。 –