0

今月の売上を得るために、毎日午前 3 時に実行するクエリがあります。

問題は毎月の最終日に発生します。すでに月がめくれているからです。したがって、11 月 1 日の午前 3 時に実行すると、0 になります。これがクエリです。

SELECT COUNT(order_id) AS added_orders
FROM `order`
WHERE date_added > DATE_ADD(CURDATE(), INTERVAL -31 DAY)
AND order_status_id != 0
AND MONTH(date_added)= MONTH(curdate())

何か案は ?

4

3 に答える 3

2
SELECT COUNT(order_id) AS added_orders FROM `order` 
where date_added > DATE_ADD(CURDATE(), INTERVAL -31 DAY) AND order_status_id != 0  
AND MONTH(date_added)= MONTH(DATE_ADD(CURDATE(), INTERVAL -1 DAY))

MONTH(date_added)= MONTH(curdate()) を変更して、前日の月がかかるようにしました

于 2013-10-31T09:13:02.993 に答える
0

これを試して !!

SELECT COUNT(order_id) AS added_orders
    FROM `order`
    WHERE date_added > DATE_ADD(CURDATE(), INTERVAL -31 DAY)
    AND order_status_id != 0
    AND MONTH(date_added)=Convert(datetime, DateAdd(month, -1, Convert(date, GetDate())));
于 2013-10-31T09:18:45.550 に答える
-1

31日前と同じ月を使用できます...

SELECT COUNT(order_id) AS added_orders
FROM `order`
WHERE date_added > DATE_ADD(CURDATE(), INTERVAL -31 DAY)
AND order_status_id != 0
AND MONTH(date_added)= MONTH(DATE_ADD(CURDATE(), INTERVAL -31 DAY))
于 2013-10-31T09:12:06.400 に答える