我想计算上个月的总订单金额.
我得到了从当前日期获取当月数据的查询.
SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE order_placed_date >= date_sub(current_date, INTERVAL 1 MONTH);
Run Code Online (Sandbox Code Playgroud)
现在我如何才能获得上个月的数据,不包括本月.
例如,本月(7月)我赚了15,000美元,上个月(6月)我赚了14,000美元.
我通过运行上面的查询得到$ 15,000.
但我不知道如何计算前几个月.
Art*_*kii 57
在这里,您可以使用它来获取MySQL上个月1月和上个月的最后一个月之间的日期:
... 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')
Run Code Online (Sandbox Code Playgroud)
我发现Artem的查询没有从上个月的最后一天返回任何东西(可能是因为BETWEEN将从最后一天的00:00:00开始计算).
这似乎对我上个月有用.
order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND DATE_FORMAT(NOW() ,'%Y-%m-01')
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50981 次 |
| 最近记录: |