我已经在mysql数据库中加载了大量数据,为了理解它我想在10分钟的时间内将其拉出来,我很好地从lap_times
获取数据但是我有点不确定如何拉它在10分钟的时间段内,基本上我想做下面的事情(在//是伪代码之后)。
SHOW * FROM lap_times // WHERE time is between 1370880036 and 1370880636 ?
任何想法我将如何实现这一目标?
答案 0 :(得分:1)
如果您可以接受从小时开始而不是任意偏移的10分钟块,那么您可以使用与此类似的逻辑:
SELECT SUM(col) FROM lap_times GROUP BY time - (time % 600);
可以通过从time
中减去来来处理任意偏移,以便在使用上面的GROUP BY
子句之前将它们移回“舍入”的时间段。
答案 1 :(得分:1)
SET @start_time = CONVERT('2013-06-10 12:15', datetime);
SELECT *
FROM lap_times
WHERE time BETWEEN @start_time and @start_time + INTERVAL 10 MIN;
答案 2 :(得分:1)
您需要决定是否希望您的间隔为“包容性”或“非包容性”。
对我来说,在左边区间“非包容性”和右侧“包容性”区间是有意义的......这样的事情:
set @t = 1370880636;
select *
from lap_times as lt
where lt.time > @t - 600 and lt.time <= @t;
如果您希望两侧的间隔为“包含”,则可以使用between
:
set @t = 1370880636;
select *
from lap_times as lt
where lt.time between @t - 600 and @t;