2017-07-01 212 views
1

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

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

此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) 

另外我想知道如何可以选择其中的日期是30多天前行:但是当我尝试下面的语句,我得到一个错误。有人可以帮我弄这个吗?

+0

ü可以分享你正在 –

+0

在30天前早在15天前的错误消息。这就像说SELECT 3 BETWEEN 5 AND 1 – Strawberry

回答

1

您可以使用下面的代码获取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 

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

SELECT count(date) as date 
FROM `inv` 
WHERE user_id=2 
AND date < CURDATE() - INTERVAL 30 DAY 
+0

它的工作。谢谢 – John

0

尝试这个

SELECT * FROM "table name" WHERE "user_id=2" 
         BETWEEN CURDATE() - INTERVAL 30 DAY 
         AND CURDATE() - INTERVAL 15 DAY