mysql 统计昨日,当月,当年,最近30天,最近12月

昨日

select SUM(your_value_field) as sValue from your_table where TO_DAYS(CURDATE())-TO_DAYS(your_date_field)=1

当月

SELECT sum(your_value_field) as sValue FROM your_table where  DATE_FORMAT(your_date_field, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')

当年

select sum(your_value_field) as sValue from your_table where YEAR(your_date_field) =  YEAR(CURDATE())

最近30天

SELECT date(your_date_field) as sDate, SUM(your_value_field) as sValue FROM your_table where (date(your_date_field) BETWEEN DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND CURDATE()) GROUP BY date(your_date_field) ORDER BY date(your_date_field)

最近12月

SELECT date(your_date_field) as sDate, SUM(your_value_field) as sValue FROM your_table where (date(your_date_field) BETWEEN DATE_SUB(CURDATE(), INTERVAL 12 MONTH) AND CURDATE()) GROUP BY YEAR(your_date_field), MONTH(your_date_field) ORDER BY YEAR(your_date_field), MONTH(your_date_field)