在10分钟内显示* FROM列 - mysql查询

时间:2013-06-10 16:03:12

标签: mysql sql

我已经在mysql数据库中加载了大量数据,为了理解它我想在10分钟的时间内将其拉出来,我很好地从lap_times获取数据但是我有点不确定如何拉它在10分钟的时间段内,基本上我想做下面的事情(在//是伪代码之后)。

SHOW * FROM lap_times // WHERE time is between 1370880036 and 1370880636 ?

任何想法我将如何实现这一目标?

3 个答案:

答案 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;