Mysql CURDATE()-1
拜托,我不明白为什么这个命令返回4月00日 今天是2015年4月1日,执行:Mysql CURDATE()-1,mysql,date,Mysql,Date,拜托,我不明白为什么这个命令返回4月00日 今天是2015年4月1日,执行: mysql> SELECT CURDATE() -1; 它返回: | 20150400 | +--------------+ 为什么CURDATE-1不返回3月31日 4月00日是个错误,如果有人能解释一下就好了 接下来,在4月2日,它运行良好,也适用于本月剩余的几天: mysql> select CURDATE() -1; | 20150401 | 在当前月份范围之外的+x/-x情况下,此功能
mysql> SELECT CURDATE() -1;
它返回:
| 20150400 |
+--------------+
为什么CURDATE-1不返回3月31日
4月00日是个错误,如果有人能解释一下就好了
接下来,在4月2日,它运行良好,也适用于本月剩余的几天:
mysql>
select CURDATE() -1;
| 20150401 |
在当前月份范围之外的+x/-x情况下,此功能似乎无法运行
这应该在参考指南中突出显示
顺便说一句,我用这个新功能替换了它:
SELECT SUBDATE(CURDATE(),1)
谢谢。您需要使用
CURDATE()-间隔1天
您使用CURDATE()-1
所做的是将CURDATE()
的结果视为整数,而不是日期
因此在4月1日,CURDATE()-1
=20150401-1
=20150400
,这显然是一个无效的日期
MySQL无法为您直观地解释这一点,因为使用-1
它不知道您指的是少一天、少一个月、少一年等等
如上所述使用MySQL的日期间隔是正确的方法。您可以使用:
SELECT SUBDATE(CURDATE(), 1);
或
或
或
非常感谢帕拉的澄清,事实上,现在我正在使用>选择子日期(CURDATE(),1),我认为也可以。
SELECT CURDATE() - INTERVAL 1 DAY;
SELECT SUBDATE(CURDATE(), INTERVAL 1 DAY);
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY);