的第一个相关值,然后按顺序扫描索引,直到找到最后一个相关值。索引范围扫描比 DATE(x) = '2016-09-01' 所需的全表扫描高效得多。

不要试图使用以下写法,即使它看起来更高效:

WHERE x BETWEEN '2016-09-01' AND '2016-09-01' + INTERVAL 1 DAY   /* 错误! */

它虽然具有与范围扫描相同的效率,但会选择 x 值刚好落在 2016 年 9 月 2 日午夜的行,这不是你想要的。

第 21.6 节:NOW()

SELECT NOW();

显示当前服务器日期和时间。

UPDATE footable SET mydatefield = NOW();

这将使用服务器配置时区中的当前服务器日期和时间更新 mydatefield,例如 2016-07-21 12:00:00。