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。