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

MySQL curdate() behavior not working correctly

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

and (dre.completion_date >= (curdate() - 1) and dre.completion_date < curdate() );

上面的查询 returns 零结果在我的查询中,但是下面的查询 returns 正确的结果数:

and (dre.completion_date >= ("2015-01-01" - 1) and dre.completion_date < "2015-01-01" );

为什么硬编码日期有效但功能无效?如有任何帮助,我们将不胜感激!

更改以下行:

(curdate() - 1) 

至:

(CURDATE() - INTERVAL 1 day)