sql >> データベース >  >> RDS >> Mysql

MySQL-DATE_ADDの月間隔

    DATE_ADD さまざまな月で問題なく動作します。問題は、2001-01-01に6か月を追加していることです。 そして7月1日はそこにあるはずです。

    これがあなたのやりたいことです:

    SELECT * 
    FROM mydb 
    WHERE creationdate BETWEEN "2011-01-01" 
                       AND DATE_ADD("2011-01-01", INTERVAL 6 MONTH) - INTERVAL 1 DAY
    GROUP BY MONTH(creationdate)
    

    または

    SELECT * 
    FROM mydb 
    WHERE creationdate >= "2011-01-01" 
    AND creationdate < DATE_ADD("2011-01-01", INTERVAL 6 MONTH)
    GROUP BY MONTH(creationdate)
    

    詳細については、DATE_ADDドキュメント

    *構文を修正するために編集



    1. MS-SQLServerのエイリアス列でGROUPBYを実行するにはどうすればよいですか?

    2. 3つのテーブルを使用した(My)SQL完全結合

    3. 各IDの最大値を取得するための単純なクエリ

    4. MySQLWorkbenchでストアドプロシージャを実行する方法