当您需要查询当前月及前12月的数据,可以使用 DATE_SUB(date,INTERVAL expr type) ;DATE_SUB() 函数从日期减去指定的时间间隔。
select *
from (SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 0 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 1 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 2 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 3 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 4 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 5 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 6 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 7 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 8 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 9 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 10 MONTH), '%Y-%m') AS date
UNION
SELECT DATE_FORMAT(DATE_SUB(curdate(), INTERVAL 11 MONTH), '%Y-%m') AS date) t
结果: