在过去1小时的前45分钟内从列中选择行

时间:2015-03-04 20:52:53

标签: mysql

我正在尝试从最后1小时的前45分钟内提交的列中选择行,再加上之前一小时的最后15分钟。基本上,它是通过一个cron作业查询表单提交,这个作业可能会提交表单(有多个部分),因为cron作业正在运行,有15分钟左右的时间可以在发送表单之前填写表单信息虽然不完整。

目前,这适用于在过去一小时内选择行:

SELECT row FROM column WHERE (time >= DATE_SUB(NOW(),INTERVAL 1 HOUR)

是否有人知道如何更改此查询以使其有15分钟的截止时间,以便选择在cron作业运行的最后15分钟之前一小时内提交的行?

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

类似的东西:

time >= DATE_SUB(NOW(),INTERVAL 1 HOUR) AND
time <= DATE_SUB(NOW(),INTERVAL 15 MINUTE)
如果你想要前40分钟(问题正文)而不是45分钟(问题标题),

15可以更改为20

-edit -

在你的新情况下,我知道你想为cron工作设置一个1小时的移动窗口,所以你可以这样做:

time >= DATE_SUB(NOW(),INTERVAL 75 MINUTE) AND
time <= DATE_SUB(NOW(),INTERVAL 15 MINUTE)

然而,这很危险,因为你的工作必须在恰当的时间运行,否则你无论如何都会错过。标记您处理的项目会更好。在查询中,您可以排除之前已处理的项目。这样,您就不会有两次处理项目的风险。如果cron因某种原因停止了,你可以再次运行它来处理所有未处理的项目。