请不要理解为什么这个命令会返回4月00日.
今天是2015年4月1日,并执行:
mysql> SELECT CURDATE() -1;
Run Code Online (Sandbox Code Playgroud)
它返回:
| 20150400 |
+--------------+
Run Code Online (Sandbox Code Playgroud)
为什么CURDATE-1没有返回3月31日?
4月00日是一个错误,如果有人能够解释它,那将是很好的.
接下来的4月2日它也运行良好,也适用于本月剩余的日子:
MySQL的>
select CURDATE() -1;
| 20150401 |
Run Code Online (Sandbox Code Playgroud)
此函数似乎无法在当前月份范围内使用+ x/-x运行.这应该在参考指南中突出显示.
顺便说一句,我用这个新功能取代了它:
SELECT SUBDATE(CURDATE(),1)
Run Code Online (Sandbox Code Playgroud)
谢谢.
pal*_*la_ 12
你需要使用CURDATE() - INTERVAL 1 DAY.
你在做什么CURDATE() - 1,将结果CURDATE()视为整数,而不是日期.
所以在4月1日CURDATE() - 1= 20150401 - 1= 20150400,这显然是无效的日期.
MySQL不能直接为你-1做这件事,因为它不知道你是说减少一天,减少一个月,减少一年等等.
如上所述使用mySQL的日期间隔是正确的方法
您可以使用:
SELECT SUBDATE(CURDATE(), 1);
Run Code Online (Sandbox Code Playgroud)
或者
SELECT CURDATE() - INTERVAL 1 DAY;
Run Code Online (Sandbox Code Playgroud)
或者
SELECT SUBDATE(CURDATE(), INTERVAL 1 DAY);
Run Code Online (Sandbox Code Playgroud)
或者
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8309 次 |
| 最近记录: |