MySQL Query to calculate the Previous Month

Solution 1:

Here you go, use this to get the date between the 1st of last month and the last of last month in MySQL:

... order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00')
AND DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59')

Solution 2:

I found that Artem's query wasn't returning anything from the last day of the previous month(presumably as BETWEEN would calculate from time 00:00:00 of the last day).

This seems to work for me for the previous month.

order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND DATE_FORMAT(NOW() ,'%Y-%m-01')

Solution 3:

Simplest solution:

SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE YEAR(order_placed_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
AND MONTH(order_placed_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)