2011-09-07 4 views
8

私の質問を見る時間をとってくれてありがとう。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 . "],"; 

} 

私は、クエリで、今から過去7日間に表示する苦労を抱えている、と遊んされてアイブ:

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()を終了しました。結果は過去7日間表示されますが、表示されません。それが私がこのチュートリアルのこのコードを使用している場合に役立ちます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) 
関連する問題