首页 > 解决方案 > MySQL:计算过去 12 个月的数据

问题描述

我正在尝试获取过去 12 个月(不包括本月)的价值总和。

下面是样本数据。

在此处输入图像描述

我尝试使用此查询,但它没有返回任何记录。

这是我创建的查询。

SELECT id, sum(amount) FROM mydatatable where YEAR(datetime) = YEAR(CURRENT_DATE - INTERVAL 12 MONTH) AND MONTH(datetime) = MONTH(CURRENT_DATE - INTERVAL 12 MONTH)

我在这里做错了什么?

标签: mysql

解决方案


只是一个例子,当前月份是六月。所以我想要从 2020 年 5 月到 2021 年 5 月的计算。 – Rocx

如果这意味着“从 2020 年 5 月 1 日(含)到 2021 年 5 月 1 日(不含)”,那么

SELECT id, SUM(amount) 
FROM mydatatable 
WHERE `datetime` >= DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') - INTERVAL '1 1' YEAR_MONTH
  AND `datetime` < DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') - INTERVAL 1 MONTH

如果这意味着其他东西,那么只需调整减法间隔。例如,对于“从 2020-06-01 包含到 2021-06-01 不包含”,这将是

SELECT id, SUM(amount) 
FROM mydatatable 
WHERE `datetime` >= DATE_FORMAT(CURRENT_DATE, '%Y-%m-01') - INTERVAL 1 YEAR
  AND `datetime` < DATE_FORMAT(CURRENT_DATE, '%Y-%m-01')

推荐阅读