2011-09-07 81 views
8

Thankyou抽空看看我的問題。從MYSQL中的Now()中選擇最後7天

我有這樣的MySQL查詢:

foreach($wpdb->get_results(
    "SELECT wp_pixelcart_calendar.datefield AS DATE, 
    IFNULL(SUM(wp_pixelcart_daily_sales.quantity),0) AS total_sales 
    FROM wp_pixelcart_daily_sales RIGHT JOIN wp_pixelcart_calendar ON (DATE(wp_pixelcart_daily_sales.order_date) = wp_pixelcart_calendar.datefield) 
    WHERE (wp_pixelcart_calendar.datefield BETWEEN (SELECT MIN(DATE(order_date)) FROM wp_pixelcart_daily_sales) AND (SELECT MAX(DATE(order_date)) FROM wp_pixelcart_daily_sales)) 
    GROUP BY DATE" 
) as $key => $row) { 

echo "<br>". $row->DATE . "',". $row->total_sales . "],"; 

} 

我有一個困難時期,從現在查詢顯示過去七天,我一直都用打轉轉:

BETWEEN (SELECT MIN(DATE(order_date)) FROM wp_pixelcart_daily_sales) AND (SELECT MAX(DATE(order_date)) FROM wp_pixelcart_daily_sales)) 

要這個:

BETWEEN NOW() FROM wp_pixelcart_daily_sales) AND DATE_ADD(NOW(), INTERVAL 7 DAY) FROM wp_pixelcart_daily_sales)) 

但是這似乎不起作用。

任何幫助表示讚賞。

感謝

回答

18

如果不工作,返回0的結果,考慮換日期範圍:

BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW() 
+0

我用盡這但似乎沒有產生任何結果\t WHERE(wp_pixelcart_calendar.datefield BETWEEN NOW()和DATE_SUB(NOW() ,INTERVAL 7 DAY)) – MattStrange

+0

如果您從WHERE子句中刪除此項,是否返回任何結果?如果是這樣,那麼過去7天內的結果的日期? – Trevor

+0

我刪除了WHERE並離開了BETWEEN NOW()...並且結果顯示出來,但不是最近七天。如果它幫助我使用本教程中的代碼http://www.richnetapps.com/using-mysql-generate-daily-sales-reports-filled-gaps/ – MattStrange

1
WHERE order_date <= NOW() AND order_date >= DATE_SUB(order_date, INTERVAL 7 DAY) 
+1

保重!這個答案是不正確的。它應該是'DATE_SUB(NOW()' – thelawnmowerman

5

你可以這樣寫:

SELECT * FROM table WHERE date_field > DATE_SUB(NOW(), INTERVAL 7 DAY)