2017-07-01 260 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