首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于计算上个月的MySQL查询

用于计算上个月的MySQL查询
EN

Stack Overflow用户
提问于 2009-07-16 14:52:57
回答 6查看 64.1K关注 0票数 27

我想计算一下上个月的订单总额。

我得到了从当前日期获取当月数据的查询。

代码语言:javascript
复制
SELECT SUM(goods_total) AS Total_Amount  FROM orders
WHERE order_placed_date >= date_sub(current_date, INTERVAL 1 MONTH);

现在,我如何才能只获得前几个月的数据,不包括这个月。

例如,这个月(7月)我赚了15,000美元,上个月(6月)我赚了14,000美元。

我通过运行上面的查询得到15,000美元。

但我不知道如何计算前几个月。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-16 14:56:31

在这里,使用下面的代码在MySQL中获取上个月1号和上个月最后一个月之间的日期:

代码语言:javascript
复制
... 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')
票数 70
EN

Stack Overflow用户

发布于 2011-12-02 00:10:56

我发现Artem的查询没有返回上个月最后一天的任何内容(假设从前一天的00:00:00开始计算)。

这似乎适用于我上个月的工作。

代码语言:javascript
复制
order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND DATE_FORMAT(NOW() ,'%Y-%m-01')
票数 8
EN

Stack Overflow用户

发布于 2015-02-22 00:23:41

最简单的解决方案:

代码语言:javascript
复制
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)
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1138190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档