MySQLで取得する時点での月(今月)のデータのみを取得する方法をご紹介いたします。
まず、その月の「月初」と「月末」の日付を取得し、その期間内かというのを条件として利用します。
月初、月末の取得
月初の取得
SELECT DATE_FORMAT(NOW(),'%Y-%m-01');
月末の取得
SELECT LAST_DAY(NOW());
この情報があれば、簡単に取得できますよね?
取得してみよう
SELECT id FROM sample_table;
でデータが取得でき、created_dateカラムに日付データが入っているとします。
すると、取得方法は以下の通りです。
SELECT id FROM sample_table where created_date between date_format(now(), '%Y-%m-01') and last_day(now());
または、betweenを使わず
SELECT id FROM sample_table WHERE LAST_DAY(NOW()) >= created_date AND DATE_FORMAT(NOW(), '%Y-%m-01') <= created_date;
というような取得方法もできます。
追記
少し説明が下手ですが、WHERE句のみをコピーすれば、そのまま使用できます。