2016-11-17 44 views
0

我需要我的過濾器只返回當前日期的最後4天。我的努力一直在正確使用DATEADD()和NOW()函數,因爲我一直保持錯誤。有什麼建議?需要過濾我過去4天的sql結果

截至目前,這是我的SQL語句:

SELECT COUNT(*) AS COUNT, DATE(CREATED_AT) AS CREATED_AT 
FROM ACCOUNT 
GROUP BY DATE(CREATED_AT) 
ORDER BY CREATED_AT ASC 

輸出是這樣的:

"result": [ 
    { 
     "count": "1", 
     "created_at": "2016-11-12T06:00:00.000Z" 
    }, 
    { 
     "count": "2", 
     "created_at": "2016-11-13T06:00:00.000Z" 
    }, 
    { 
     "count": "1", 
     "created_at": "2016-11-14T06:00:00.000Z" 
    }, 
    { 
     "count": "2", 
     "created_at": "2016-11-15T06:00:00.000Z" 
    } 
    ], 

編輯:我使用的是Postgres,我認爲改變樣的功能,我可以使用確定日期。

回答

0

你只是想要一個簡單的WHERE子句。假設你沒有未來的日期:

SELECT COUNT(*) AS COUNT, DATE(CREATED_AT) AS CREATED_AT 
FROM ACCOUNT 
WHERE CREATED_AT >= DATE_SUB(CURDATE(), INTERVAL 4 day) 
GROUP BY DATE(CREATED_AT) 
ORDER BY CREATED_AT ASC; 
+0

date_sub函數對我不起作用,我只是編輯了原文。我想也許它是因爲我使用postgres –

+0

我找到了解決方案感謝您的幫助:) –

0

在做了一些研究之後,我發現了一個POSTGRES友好版本的工作!

SELECT COUNT(*) AS COUNT, 
DATE(CREATED_AT) AS CREATED_AT 
FROM ACCOUNT WHERE CREATED_AT >= NOW() - INTERVAL '4 DAYS' 
GROUP BY DATE(CREATED_AT) 
ORDER BY CREATED_AT ASC