2017-04-24 70 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

好的做法是你应该有一个表的主键。如果没有比较你认为唯一的所有值。 –