根据当前日期获取前3个月的数据 - MySQL

sof*_*kid 7 mysql sql

如何使用SQL语句获取前3个月的数据?例如,如果当前日期是01/01/2012,那么如何获取2011年12月,11月,10月的数据?

请有人指导我.

Joh*_*ica 14

SELECT * FROM table1 
WHERE mydate BETWEEN DATE_SUB(now(), INTERVAL 3 MONTH) AND now()
Run Code Online (Sandbox Code Playgroud)

或者如果你想留在几个月内

SELECT * FROM table1 
WHERE MONTH(mydate) BETWEEN MONTH(DATE_SUB(now(), INTERVAL 3 MONTH)) AND MONTH(now())
  AND YEAR(mydate) BETWEEN YEAR(DATE_SUB(now(), INTERVAL 3 MONTH)) AND YEAR(now())
Run Code Online (Sandbox Code Playgroud)

后一个版本运行得慢得多,因为它不能使用索引mydate.