MySQL curdate()行为无法正常工作

MySQL curdate()行为无法正常工作,mysql,Mysql,我有一个正在执行的select查询,但在使用以下逻辑时遇到错误: and (dre.completion_date >= (curdate() - 1) and dre.completion_date < curdate() ); 和(dre.completion\u date>=(curdate()-1)和dre.completion\u date=(“2015-01-01”-1)和数据完成日期

我有一个正在执行的select查询,但在使用以下逻辑时遇到错误:

and (dre.completion_date >= (curdate() - 1) and dre.completion_date < curdate() );
和(dre.completion\u date>=(curdate()-1)和dre.completion\u date
上面的查询在我的查询中返回零个结果,但是下面的查询返回正确数量的结果:

and (dre.completion_date >= ("2015-01-01" - 1) and dre.completion_date < "2015-01-01" );
和(数据完成日期>=(“2015-01-01”-1)和数据完成日期<“2015-01-01”);

为什么硬编码的日期起作用,但功能不起作用?任何帮助都将不胜感激

更改以下行:

(curdate() - 1) 
致:


更改以下行:

(curdate() - 1) 
致:


完成日期的数据类型是什么?
完成日期的数据类型是什么?是的,应该可以解决问题。表达式
CURDATE()-1
最终将日期转换为一个数字:今天,
select CURDATE()-1
给了我
20150100
-显然,这不是你想要的:)是的,这应该可以解决问题。表达式
CURDATE()-1
最终将日期转换为一个数字:今天,
select CURDATE()-1
给了我
20150100
-显然,不是你想要的:)