根据MySQL中的时间戳选择条目中的间隔
我有一个非常简单的表格,如:根据MySQL中的时间戳选择条目中的间隔,mysql,Mysql,我有一个非常简单的表格,如: 框,一些数据,unix\u时间戳 理想情况下,每个框每小时会有一个新的时间戳。在为遗漏的条目生成每日报告时,如果某个框遗漏了一两个小时,我如何选择条目中的间隔?我是否需要选择当天的所有数据并慢慢解析,或者在MySQL查询中有没有更快的方法 e、 g 选择时间戳,其中[[另一个时间戳在65分钟内不出现]] 所以我的报告数据基本上是 遗漏的条目: 方框2:凌晨2:01凌晨4:01(3:01的条目缺失) 方框8:6:05 am上午10:05(缺少7:05、8:05和9:0
框
,一些数据
,unix\u时间戳
理想情况下,每个框每小时会有一个新的时间戳。在为遗漏的条目生成每日报告时,如果某个框遗漏了一两个小时,我如何选择条目中的间隔?我是否需要选择当天的所有数据并慢慢解析,或者在MySQL查询中有没有更快的方法
e、 g
选择时间戳,其中[[另一个时间戳在65分钟内不出现]]
所以我的报告数据基本上是
遗漏的条目:
方框2
:凌晨2:01
<代码>凌晨4:01(3:01的条目缺失)
方框8
:6:05 am
<代码>上午10:05(缺少7:05、8:05和9:05)
第28栏
:凌晨3:15
。(仍处于脱机状态!)
这可能会有很多盒子,所以我想用最有效的方法来做。如果有人想知道如何在不选择一整天的数据并对其进行解析的情况下实现这一点,我很乐意听听
谢谢 仅使用一个查询,我只能想到这个选项,它不会提供您所需的内容,因为它只适用于最多跳过一个小时的情况,但不适用于跳过两个条目左右的情况:
SELECT DATE_ADD(timestamp, INTERVAL 1 HOUR) FROM table t1
WHERE NOT EXISTS (
SELECT * FROM t2 WHERE t2.timestamp = DATE_ADD(t1.time, INTERVAL 1 HOUR)
)
因此,我建议您使用您最喜欢的编程语言在应用程序级别实现这一点
这是一些关于我将如何做的伪代码:
result := [result set coming from your database]
// assuming that result is returned sorted by timestamp (i.e. ORDER BY timestamp)
i = 0
for j in 0..23
elem := [ith elem from result]
if hour(elem) <= j
i++
else
add_to_result(j)
result:=[来自数据库的结果集]
//假设返回的结果按时间戳排序(即按时间戳排序)
i=0
对于0..23中的j
元素:=[结果中的第i个元素]
如果小时(elem)