SELECT date BETWEEN date with interval

Joh*_*ohn 4 mysql

我的数据库中有一个日期列。我使用 SELECT COUNT 计算今天和 15 天前之间的行:

SELECT count(date) as date
FROM `inv`
WHERE user_id='2'
AND date BETWEEN CURDATE() - INTERVAL 15 DAY
AND CURDATE()
Run Code Online (Sandbox Code Playgroud)

此 SQL 语句正在运行。但是现在我想使用 SELECT COUNT 来计算今天(-15 天)和 30 天前之间的行。但是当我尝试以下语句时出现错误:

SELECT count(date) as date
FROM `inv`
WHERE user_id='2'
AND date BETWEEN date(CURDATE(),INTERVAL -15 day)
AND date(CURDATE(),INTERVAL -30 day)
Run Code Online (Sandbox Code Playgroud)

另外我想知道如何选择日期超过 30 天前的行。有人可以帮我弄这个吗?

Gur*_*ngh 8

您可以使用以下内容获取 15 到 30 天之间的行。

SELECT count(date) as date
FROM `inv`
WHERE user_id=2
AND date BETWEEN CURDATE() - INTERVAL 30 DAY
             AND CURDATE() - INTERVAL 15 DAY
Run Code Online (Sandbox Code Playgroud)

同样,您可以使用下面的方法获取超过 30 天的行。

SELECT count(date) as date
FROM `inv`
WHERE user_id=2
AND date < CURDATE() - INTERVAL 30 DAY
Run Code Online (Sandbox Code Playgroud)