从 NOW() -1 天选择记录
MySQL 语句中是否有一种方法可以通过 >= NOW() -1 对记录进行排序(通过日期戳),以便选择从前一天到未来的所有记录?
Is there a way in a MySQL statement to order records (through a date stamp) by >= NOW() -1 so all records from the day before today to the future are selected?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
根据日期/时间函数的文档,您应该能够执行以下操作:
Judging by the documentation for date/time functions, you should be able to do something like:
请注意,结果可能与您的预期略有不同。
NOW()
返回一个DATETIME
。INTERVAL
的工作方式与命名的一样,例如INTERVAL 1 DAY = 24 小时
。因此,如果您的脚本被安排在
03:00
运行,它将错过“最旧”一天的前三个小时的记录
。要获取一整天,请使用
CURDATE() - INTERVAL 1 DAY
。无论脚本何时运行,这都会返回到前一天的开始。Be aware that the result may be slightly different than you expect.
NOW()
returns aDATETIME
.And
INTERVAL
works as named, e.g.INTERVAL 1 DAY = 24 hours
.So if your script is cron'd to run at
03:00
, it will miss thefirst three hours of records from the 'oldest' day
.To get the whole day use
CURDATE() - INTERVAL 1 DAY
. This will get back to the beginning of the previous day regardless of when the script is run.使用
DATE_ADD
或DATE_SUB
没有看到任何正确答案:从
NOW()
中减去 1 天从
NOW()
添加 1 天Didn't see any answers correctly using
DATE_ADD
orDATE_SUB
:Subtract 1 day from
NOW()
Add 1 day from
NOW()
你已经快到了:
NOW() - INTERVAL 1 DAY
You're almost there: it's
NOW() - INTERVAL 1 DAY
当然你可以:
Sure you can:
当搜索字段是时间戳并且您想要查找昨天 0 小时和今天 0 小时的记录时,请使用构造
函数
when search field is timestamp and you want find records from 0 hours yesterday and 0 hour today use construction
instead
试试这个:
从 FO 选择 *
WHERE MY_DATE_FIELD >= NOW() - 间隔“1”天
try this:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL '1' DAY