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 demo ):

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 に答える