MYSQL - 选择最接近完整小时的数据时间,介于2个日期之间

时间:2016-10-27 05:45:01

标签: php mysql

我有一个脚本可以记录每分钟的耗电量。但由于互联网连接速度缓慢以及其他一些问题,日志记录不会在每分钟的同一秒内发生(+ - 5秒)。

我需要收集最接近整整一小时的所有数据。

我有以下查询:

SELECT * FROM row WHERE time BETWEEN '$today 00:00:00' AND '$today 23:59:59' AND time LIKE '%:59:%' ORDER by time ASC

这有一个问题,因为时间轴有时会超过第59分钟,因为记录期间的偏移很小。

如何进行查询,仅在一段时间内选择最接近完整小时的值?

*编辑28.10.2016 * 下面是行的一小部分输出,它显示了小时21周围的4个日志:

ID      |     VALUE       |         TIME
3002        31260                2016-10-27 21:01:56
3001        31250                2016-10-27 21:00:44
3000        31240                2016-10-27 20:59:33
2999        31234                2016-10-27 20:58:27

所需的输出是最接近21:00:00的行。在这种情况下,行为id 3000。 我在上面发布的查询就可以了。但是,如果日志跳过日志3000上的条目,并在20:58:27登录,然后再次在21:00:44登录 - 它将不会显示。

我需要在指定时间段之间的所有小时输出此输出。 我希望输出返回最接近完整小时的所有行,如下所示:

ID      |     VALUE       |         TIME
3000        31240                2016-10-27 20:59:33
2500        25000                2016-10-27 19:59:27
2000        20000                2016-10-27 19:00:00

注意第三行输出行不包含第59分钟?

0 个答案:

没有答案