【发布时间】:2011-09-21 10:16:30
【问题描述】:
如何使用 SQL 语句获取前 3 个月的数据?例如,如果当前日期是 01/01/2012,那么如何获取 2011 年 12 月、11 月、2011 年 10 月的数据?
请有人指导我。
【问题讨论】:
如何使用 SQL 语句获取前 3 个月的数据?例如,如果当前日期是 01/01/2012,那么如何获取 2011 年 12 月、11 月、2011 年 10 月的数据?
请有人指导我。
【问题讨论】:
SELECT * FROM table1
WHERE mydate BETWEEN DATE_SUB(now(), INTERVAL 3 MONTH) AND now()
或者如果你想在几个月内留下来
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())
后一个版本运行速度会慢很多,因为它不能使用mydate 的索引。
【讨论】:
select *, DATE_SUB(<date here>, INTERVAL 3 MONTH) as date_used ...然后就可以看到实际使用的是哪个日期了。