MYSQL CURDATE() -7 在 1 月 1 日询问时省略 12 月的天数
MYSQL CURDATE() -7 omits days in December when asked at the first of January
我有一个 table 保存过去和即将到来的 class 的数据。我的查询要求输出从 7 天前开始的任何 class。 IE。如果今天是星期五,我将能够看到上周 classes 和即将到来的 classes.
一直到过年,它的表现都如期而至。现在是 1 月 2 日,我只能看到今年的 classes。尽管 12 月 30 日有一个class。
SELECT * FROM DriverEducationClass WHERE classDate > CURDATE() -7 ORDER BY classDate;
它在前一个月的变化中起作用。这跟换年有关系吗?
这与年份的变化无关,与你的减法有关:
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
版本 returns 是一个不稳定的整数,而 - interval
版本 returns 是一个正确的日期。
我有一个 table 保存过去和即将到来的 class 的数据。我的查询要求输出从 7 天前开始的任何 class。 IE。如果今天是星期五,我将能够看到上周 classes 和即将到来的 classes.
一直到过年,它的表现都如期而至。现在是 1 月 2 日,我只能看到今年的 classes。尽管 12 月 30 日有一个class。
SELECT * FROM DriverEducationClass WHERE classDate > CURDATE() -7 ORDER BY classDate;
它在前一个月的变化中起作用。这跟换年有关系吗?
这与年份的变化无关,与你的减法有关:
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
版本 returns 是一个不稳定的整数,而 - interval
版本 returns 是一个正确的日期。