1

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

这是分贝:

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
4

2 回答 2

2

试试这个,

SELECT  *
FROM    sa_cms_post
WHERE   MONTH(createdAt) BETWEEN
                         MONTH(CURDATE()) AND MONTH(CURDATE() + INTERVAL 3 MONTH)
于 2013-03-28T03:56:32.913 回答
0

如果我理解正确,最新的 3 个月实际上是指从表中获取3 个尾随月份的行,而当前日期对你来说并不重要。在这种情况下,这有效(SQLFiddle 演示):

SELECT *
FROM sa_cms_post
WHERE createdAt > date_sub(
    (SELECT max(createdAt) FROM sa_cms_post),
    INTERVAL 3 month
)
于 2013-03-28T04:15:17.567 回答