如何将以下循环转换为SQL语句以在MySQL数据库上运行

时间:2015-07-04 10:51:41

标签: mysql sql

我想从数据库中选择行,但条件是下一行的时间戳将大5-10分钟(我使用Java转换保存我的时间戳)并且应该从一个数据库中收集数据时间戳范围

例如,我在时间戳1434758400和1434412800之间有4700行 我需要减少行数,所以我要做的是选择时间间隔为5-10-15分钟的行

很容易在for循环中写入如下:

for(int i=1434412800 ;i<=1434758400 ;i=i+900) //INTERVAL OF 15 MIN
{
    select();
}

但我知道我不能用它作为SQL语句......
如何将其转换为SQL语句?

1 个答案:

答案 0 :(得分:0)

我认为你需要这样的东西:

SELECT *
FROM yourTable
WHERE (FLOOR(unix_timestamp(timestampField) / 900) - FLOOR(1434412800 / 900) = :i)

但是我在这里使用i++代替i+=900,我的意思是i = 0会为第一页[1434412800, 1434412800 + 900)i = 1提供第二页{{1}行等等。