Php mysql:如何从数据库中获取最近3个月的数据?

Php mysql:如何从数据库中获取最近3个月的数据?,php,mysql,sql,select,Php,Mysql,Sql,Select,在最近的三个月里,我一直在考虑在mysql中使用命令来查询行。例如: 这是db: row 1 : 2012/02/10 - id : 1 row 2 : 2012/03/15 - id : 2 row 3 : 2012/05/04 - id : 3 row 4 : 2012/06/04 - id : 4 今天是:2013/03/28 如何编写命令从数据库中最新的3个月获取数据行: 真正的结果将是:第2行、第3行和第4行 更新----- 试试看 SELECT * FROM sa_cms_

在最近的三个月里,我一直在考虑在mysql中使用命令来查询行。例如:

这是db:

row 1 : 2012/02/10 - id : 1
row 2 : 2012/03/15 - id : 2
row 3 : 2012/05/04 - id : 3
row 4 : 2012/06/04 - id : 4
今天是:
2013/03/28

如何编写命令从数据库中最新的3个月获取数据行: 真正的结果将是:第2行、第3行和第4行

更新-----

试试看

SELECT  *
FROM    sa_cms_post
WHERE   MONTH(createdAt) BETWEEN
                         MONTH(CURDATE()) AND MONTH(CURDATE() + INTERVAL 3 MONTH)

如果我理解正确的话,最新的3个月实际上意味着从表中获得3个后续月份行,而当前日期对您来说并不重要。在这种情况下,这是有效的():


你的桌子是什么结构?日期是实际日期字段还是字符串?@Cfreak:我更新了关于表信息的问题:为什么记录
2
仍在列表中?你是根据月份来计算的吗?我需要最新的3个月,而不是最后的3个月。所以在这个例子中,我认为当前时间是2013年,但如果是真的,我们需要06 05 03个月的数据,因为这是数据库中最新的3个月。同一个月有记录吗?测试!完成了!。非常感谢你,我的朋友:)这个解决方案是错误的。它将在这个数据上失败:他想要3个最新的,就像在后面一样months@mvp但是仍然需要当前月份。@mvp该解决方案基于给定数据和所需结果。因为它从给定数据集获得3个后续月份(不考虑当前日期)@downvoter:此答案对于数据集的后续3个月有效。若你们认为我并没有正确理解这个问题,那个就说出来。
SELECT  *
FROM    sa_cms_post
WHERE   MONTH(createdAt) BETWEEN
                         MONTH(CURDATE()) AND MONTH(CURDATE() + INTERVAL 3 MONTH)
SELECT *
FROM sa_cms_post
WHERE createdAt > date_sub(
    (SELECT max(createdAt) FROM sa_cms_post),
    INTERVAL 3 month
)