在mysql查询中用flag / status计算时间

时间:2017-10-27 08:18:38

标签: php mysql arrays datetime date-difference

请帮我查询mysql。 如何从date_in计算时间与(ON / OFF)状态。 样本数据如下:

------------------------------
status  |      date_in         
------------------------------
ON      | 2017-10-27 23:30:37
ON      | 2017-10-28 01:08:40
ON      | 2017-10-28 01:10:43
OFF     | 2017-10-28 01:15:51
OFF     | 2017-10-28 01:26:28
ON      | 2017-10-28 01:30:33
ON      | 2017-10-28 02:00:15
------------------------------

结果想要这样:

-----------------------------------------------
status  |      date_in        |  diff(hh:mm:ss)
-----------------------------------------------
ON      | 2017-10-27 23:30:37 | ON:00:00:00
ON      | 2017-10-28 01:08:40 | ON:01:38:03
ON      | 2017-10-28 01:10:43 | ON:00:02:03
OFF     | 2017-10-28 01:15:51 | OFF:00:00:00
OFF     | 2017-10-28 01:26:28 | OFF:00:10:17
ON      | 2017-10-28 01:30:33 | ON:00:00:00
ON      | 2017-10-28 02:00:15 | ON:00:29:42
------------------------------------------------

ON:00:00:00 + 01:38:03 + 00:02:03 + 00:00:00 + 00:29:42
= 02:09:48 / 2小时,9分钟,48秒

OFF:00:00:00 + 00:10:17
= 00:10:17 / 0小时,10分钟,17秒

非常感谢你帮助我...


dede.tar.gz@gmail.com

1 个答案:

答案 0 :(得分:0)

计算timediff,你需要区分两个时间戳..但你的问题不够明确..

SELECT TIMEDIFF('2009-05-18 15:45:57.005678','2009-05-18 13:40:50.005670');

你有date_in ..来获得不同的时间你需要date_out来获得不同的值。