MYSQL CURDATE() - 7在1月1日被问到的时候省略了12月的日子

时间:2015-01-02 17:51:19

标签: mysql date

我有一个表,包含过去和即将上课的保留数据。我的查询要求从7天前输出任何类。即。如果今天是星期五,我将能够看到上周的课程和即将到来的课程。

它一直按预期执行到新年。这是1月2日,我只能看到今年的课程。即使12月30日有一堂课。

SELECT * FROM DriverEducationClass WHERE classDate > CURDATE() -7 ORDER BY classDate;

它在上个月到月份的变化中起作用。这与年度变化有关吗?

1 个答案:

答案 0 :(得分:3)

这与年度变化无关,与减法无关:

mysql> select curdate() - 7, curdate() - interval 7 day;
+---------------+----------------------------+
| curdate() - 7 | curdate() - interval 7 day |
+---------------+----------------------------+
|      20150095 | 2014-12-26                 |
+---------------+----------------------------+
1 row in set (0.00 sec)

注意-7版本如何返回一个不稳定的整数,而- interval版本返回正确的日期。