昨天的所有MySQL记录

eCo*_*Evo 15 mysql datetime

获取日期时间字段的所有记录的最有效方法是在昨天00:00:00和昨天之间23:59:59

表:

id    created_at
1     2016-01-19 20:03:00
2     2016-01-19 11:12:05
3     2016-01-20 03:04:01
Run Code Online (Sandbox Code Playgroud)

假设昨天是2016-01-19,那么在这种情况下,我想要返回的是第1行和第2行.

mik*_*n32 40

由于您只是在寻找日期部分,因此您可以使用MySQL的DATE()功能轻松地比较它们.请注意,如果您有大量的记录,这可能效率低下; 索引的优点会随着派生值而丢失DATE().

SELECT * FROM table WHERE DATE(created_at) = DATE(NOW() - INTERVAL 1 DAY);
Run Code Online (Sandbox Code Playgroud)


小智 9

如果你说,你仍然可以使用索引

SELECT * FROM TABLE
WHERE CREATED_AT >= CURDATE() - INTERVAL 1 DAY
  AND CREATED_AT < CURDATE();
Run Code Online (Sandbox Code Playgroud)