从NOW()-1天中选择记录

use*_*780 116 mysql select datestamp where

在MySQL语句中是否有一种方法可以通过> = NOW()-1对记录(通过日期戳)进行排序,以便选择今天前一天到未来的所有记录?

Jon*_*eet 228

根据日期/时间函数文档判断,您应该能够执行以下操作:

SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Run Code Online (Sandbox Code Playgroud)


小智 51

请注意,结果可能与您预期的略有不同.

NOW()返回一个DATETIME.

INTERVAL作品的命名,例如INTERVAL 1 DAY = 24 hours.

因此,如果您的脚本是cron'd运行03:00,它将错过first three hours of records from the 'oldest' day.

让一整天都用完CURDATE() - INTERVAL 1 DAY.无论脚本何时运行,这都将返回到前一天的开头.


das*_*ght 15

你几乎就在那里:它是 NOW() - INTERVAL 1 DAY


And*_*son 15

使用DATE_ADDor没有看到任何正确答案DATE_SUB

减去 1 天 NOW()

...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)

添加 1 天从 NOW()

...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)


Mar*_*urg 8

你当然可以:

SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)
Run Code Online (Sandbox Code Playgroud)

  • 混淆使用`DATE_ADD`然后`-1天`。 (4认同)