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

时间:2013-03-28 03:49:06

标签: php mysql sql select

我被困在mysql中使用命令来查询最近3个月的行。这是一个例子:

这是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

更新-----

Table name = sa_cms_post | col date : createdAt datetime - 0000-00-00 00:00:00

2 个答案:

答案 0 :(得分:2)

尝试一下,

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

答案 1 :(得分:0)

如果我理解正确,最近3个月你实际上是指从表中获得 3个结尾月行,而且当前日期并不重要。在这种情况下,这有效(SQLFiddle demo):

SELECT *
FROM sa_cms_post
WHERE createdAt > date_sub(
    (SELECT max(createdAt) FROM sa_cms_post),
    INTERVAL 3 month
)