【MySQL】「今月と来月」を表現する
問題
ある日付型のカラムの値が「今月と来月」にマッチする行を取得したい。
解答例
SQLで書いた例。
SELECT * FROM T WHERE T.hoge_date >= date_format(now(), '%Y-%m-01') and T.hoge_date < adddate(date_format(now(), '%Y-%m-01'), interval 2 month)
date_format(now(), ‘%Y-%m-01’) で今月の月初が取れるので、それ以上を条件に。
adddate(date_format(now(), ‘%Y-%m-01’), interval 2 month) でらい来月の月初が取れるので、それ未満を条件に。
注意
なお、phpなどが動いているWebサーバー側とMySQLなどが動いているデータベース側で時計がずれていると困ったことになる場合が想定されるので、無理して日付関数を使わないで、検索条件に使う日付はWebサーバー側で生成するのもよい方法だと思います。
コメント