2013-10-07 198 views
0

我有一個自動查詢,它計算每週進行的搜索次數,目前它只顯示搜索發生的月份,我希望它顯示相應周的日期範圍正顯示出的數據,即30/09/13 - 13年7月10日MySQL日期範圍

我的查詢:

SELECT COUNT(*) AS `count`, 
    `region`, 
    MONTHNAME(`date`) as `month` 
FROM stores.stats 
WHERE `date` > DATE_ADD(DATE (NOW()), INTERVAL - 1 WEEK) 
    AND `date` < DATE (NOW()) 
GROUP BY `region`, 
    MONTH(`date`); 

回答

2

只需範圍內添加到您的選擇列表,像這樣:

SELECT COUNT(*) AS `count`, 
    `region`, 
    MONTHNAME(`date`) as `month`, 
    DATE_ADD(DATE (NOW()), INTERVAL - 1 WEEK) as `range start`, 
    DATE (NOW()) as `range stop` 
FROM stores.stats 
WHERE `date` > DATE_ADD(DATE (NOW()), INTERVAL - 1 WEEK) 
    AND `date` < DATE (NOW()) 
GROUP BY `region`, 
    MONTH(`date`) 
+0

由於[NOW()](http://dev.mysql.com/doc/refman/5.5/en/d ate-and-time-functions.html#function_now)會返回一個常量(表示語句開始執行的時間),因此不需要將它放入組中。 – GarethD

+0

啊,你說的沒錯。編輯我的答案。 – Dan

+0

而不是有2列一開始和另一個完成,我可以只有一列?所以結果會是這樣的:2013-09-30/2013-10-07 –