269 从日期/时间函数的文档来看,您应该能够执行以下操作: SELECT * FROM FOO WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY — 乔恩·斯基特 source 如何现在去等等。.db中所有可用记录的平均日期。?这仅是一天,但我现在需要所有记录。@jon — Muddasir Abbas 记录使用UTC时是否考虑用户的本地时间? — Adry 1 @Adry:我对此表示怀疑,但是您应该仔细测试。 — 乔恩·斯基特
62 请注意,结果可能与您预期的略有不同。 NOW() 返回一个 DATETIME。 而且INTERVAL可以作为命名的,如INTERVAL 1 DAY = 24 hours。 因此,如果您的脚本要在处运行03:00,它将错过first three hours of records from the 'oldest' day。 为了获得一整天的使用CURDATE() - INTERVAL 1 DAY。无论脚本何时运行,都将返回到前一天的开始。 — 威廉·丹·特里 source 对CURDATE()进行投票 — 抢劫
8 你当然可以: SELECT * FROM table WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY) — 马可·米尔腾堡 source DATE_ADD然后混淆使用-1 day。 — 安德鲁·阿特金森
8 使用DATE_ADD或未正确看到任何答案DATE_SUB: 从减去1天 NOW() ...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY) 从添加1天 NOW() ...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY) — 安德鲁·阿特金森 source
1 当搜索字段是时间戳并且您想要查找昨天0小时和今天0小时之间的记录时,请使用构建 MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j')) 代替 now() - interval 1 day — 迈克尔·德奥兹 source