我正在尝试从最后1小时的前45分钟内提交的列中选择行,再加上之前一小时的最后15分钟。基本上,它是通过一个cron作业查询表单提交,这个作业可能会提交表单(有多个部分),因为cron作业正在运行,有15分钟左右的时间可以在发送表单之前填写表单信息虽然不完整。
目前,这适用于在过去一小时内选择行:
SELECT row FROM column WHERE (time >= DATE_SUB(NOW(),INTERVAL 1 HOUR)
是否有人知道如何更改此查询以使其有15分钟的截止时间,以便选择在cron作业运行的最后15分钟之前一小时内提交的行?
感谢任何帮助。谢谢!
答案 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因某种原因停止了,你可以再次运行它来处理所有未处理的项目。