我在使用DATE_SUB for DateTime字段时遇到问题。我想使用这样的查询:
SELECT
*
FROM
SellBySalesman
WHERE
userid=37 and
sellingDate BETWEEN CURDATE() AND DATE_SUB(CURDATE(), INTERVAL 7 DAY)
答案 0 :(得分:13)
我不确定你得到了什么错误,但这不起作用。原因是你的BETWEEN子句中的参数是相反的。 BETWEEN要求第一个参数为最小值,第二个参数为最大值。 DATE_SUB会从提供的日期中减去间隔,使其小于当前日期。
尝试这样的事情:
SELECT
*
FROM
SellBySalesman
WHERE
userid=37 and
sellingDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE()
答案 1 :(得分:1)
你必须像这样颠倒中间的顺序:
SELECT
*
FROM
SellBySalesman
WHERE
userid=37 and
sellingDate BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE();
答案 2 :(得分:1)
你的BETWEEN值是倒退的。
你需要先得到一个较小的值:“BETWEEN 1和10”而不是“BETWEEN 10和1”。
所以,在你的情况下,你想要“BETWEEN DATE_SUB(CURDATE(),INTERVAL 7 DAY)和CURDATE()”