【发布时间】:2014-12-30 08:33:55
【问题描述】:
在我的表中,我有字段(名为 id、二进制和时间戳)从门上的传感器获取数据,当门打开时,它发送二进制值作为 1 时间戳和它自己的 id。当它关闭时,它发送二进制值作为 0 以及时间戳和 id。是的,它发送连续数据,不像它打开时只是发送数据并停止,而是继续发送二进制和 id 值相同的数据,除了时间戳。例如昨天当门打开 2 秒时,它发送的数据如下:
------------------------
id---binary---timestamp
------------------------
XX-----1------2014-12-29 21:09:08
XX-----1------2014-12-29 21:09:08
XX-----1------2014-12-29 21:09:08
XX-----1------2014-12-29 21:09:08
XX-----1------2014-12-29 21:09:08
XX-----1------2014-12-29 21:09:09
XX-----1------2014-12-29 21:09:09
XX-----1------2014-12-29 21:09:09
XX-----1------2014-12-29 21:09:09
XX-----1------2014-12-29 21:09:09
XX-----0------2014-12-29 21:09:10
XX-----0------2014-12-29 21:09:10
XX-----0------2014-12-29 21:09:10
........................................so on..
上图可以找到一整天门打开的次数为 1 值,其余时间为 0 值。
现在,我想计算总持续时间以每天在图表中显示门打开了多长时间。但问题是,我从上面的数据中不知道如何使用时间戳计算持续时间。我知道我可以使用 TIMEDIFF() 和 TIME_TO_SEC() 函数进行计算,但这仅在我有开始时间和结束时间时——在我的情况下,我没有。
我还想到了一个想法,即选择 binary=1 的所有值并将它们加在一起,但这不是实时持续时间,因为我的传感器有时会以 5 次/秒的速度发送相同的数据,有时会以 3 次/秒的速度发送。如果解决了始终发送 5 个数据/秒的问题,那么我可以将总数相加并除以 5 以找到单秒,但事实并非如此。
谁有办法解决这个问题?
提前谢谢..:)
【问题讨论】:
标签: mysql