SQL仅从最近5分钟选择记录

时间:2014-08-20 11:56:00

标签: python mysql

我想从最近5分钟获得记录。我目前正在使用此代码,我从这个网站获得:

select * from table where timestamp between curtime() and timestamp(date_sub(now(), interval 5 minute))

但它对我不起作用,它以5分钟的间隔返回我的所有记录。例如,我将在2014-07-30 15:40:02收到几条时间戳的记录,然后我会得到5分钟的差距并获得几条记录,时间戳为2014-07-30 15:45 :02

4 个答案:

答案 0 :(得分:0)

这是你的where子句:

where timestamp between curtime() and timestamp(date_sub(now(), interval 5 minute))

在这种情况下,第一个边界大于 ,因为您要从当前时间减去5分钟。这实际上不应该匹配任何东西,因为:

where x between y and y - 5

应始终返回空集。界限是有序的。也许交换它们会有所帮助:

where timestamp between timestamp(date_sub(now(), interval 5 minute)) and curtime()

但是,如果您没有未来的时间戳,请执行以下操作:

where timestamp >= timestamp(date_sub(now(), interval 5 minute))

答案 1 :(得分:0)

select * from table where timestamp >= timestamp(date_sub(now(), interval 5 minute))

答案 2 :(得分:0)

尝试使用:

read=("""select * from table where timestamp >= timestamp(date_sub(now(), interval 5 minute))""")

答案 3 :(得分:0)

select * from table where timestamp between curtime() and DateADD(minute, -5, curtime());