获取日期时间字段的所有记录的最有效方法是在昨天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)
| 归档时间: |
|
| 查看次数: |
30864 次 |
| 最近记录: |