BETWEEN和DATE_ADD在我的情况下不起作用

时间:2017-08-22 08:24:34

标签: mysql

我的数据库中的销售额已经过了9天而且此查询没有返回任何原因?

SELECT * FROM `sales`
WHERE date BETWEEN CURRENT_DATE AND 
(DATE_ADD(CURRENT_DATE, INTERVAL -10 DAY))

1 个答案:

答案 0 :(得分:3)

您必须切换参数。从必须低于。

SELECT * FROM `sales`
WHERE date BETWEEN 
(DATE_ADD(CURRENT_DATE, INTERVAL -10 DAY)) AND CURRENT_DATE  

您当前的查询将返回更大比现在更早的记录,而不是10天前的记录,因此不包括您要定位的范围。

有关详细信息,请参阅documentation

  

如果expr大于或等于min且expr小于或等于   到最大值,BETWEEN返回1,否则返回0.这是等效的   如果所有参数都是表达式(min< = expr AND expr< = max)   属于同一类型。否则进行类型转换   第12.2节“表达式中的类型转换”中描述的规则   评价“,但适用于所有三个论点。