自分がよく使うSQLをライブラリ的にここに残しておく。 こんな感じでSQLを書くと SELECT @date:=date(date_format(CURRENT_DATE(),'%Y-%m-01')) as Date UNION ALL SELECT @date:=DATE_ADD(@date, INTERVAL 1 DAY) FROM `テーブル名` WHERE @date < last_day(CURRENT_DATE()) こんな感じで結果セットが取れる。 Date 2017-08-01 2017-08-02 ・・・ 2017-08-31 この時、SQLの中で参照するテーブルはどんな構造になっていてもかまわないけれど、ここで取得する日付範囲よりも多いレコードを持っている必要がある。 例えば上の例でいえば`テーブル名`は30レコード以上持っている必要がある。