MYSQL返回数据不包括当前月/年

时间:2015-09-13 14:08:22

标签: mysql

我需要从一个表中提取数据,该表的日期存储在单独的YEAR和MONTH列中......

我需要在过去两年内提取数据......

这就是我所拥有的:

SELECT 
        st_year as YEAR,
        st_month as  MONTH,
        count(*) 
    FROM 
        V1_Stable
    WHERE 
        st_year IS NOT NULL 
    AND
        st_month IS NOT NULL 
    GROUP BY 
        st_year,  st_month
    ORDER BY YEAR ASC, MONTH ASC;

基本上,这可以获得我需要的数据,但我需要将其限制为仅回溯24个月,并且不包括当前月份的数据。

我尝试添加:

AND
(st_month != '$currentMonth' AND st_year != '$currentYear')

但是这只会删除当前年份以及与当月匹配的任何月份的所有记录......

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是将年/月列转换为数月计数。这允许您在不涉及日期的情况下进行计算。 where子句的相关部分是:

where st_year * 12 + st_month >= year(now()) * 12 + month(now()) - 24

编辑:

如果您不想要当前月份,那么只需使用相同的逻辑:

where st_year * 12 + st_month >= year(now()) * 12 + month(now()) - 24 and
      st_year * 12 + st_month < year(now()) * 12 + month(now())