SQLで日付を範囲指定して取得したいときの方法について解説します
日付列のデータ型はDATE型なのでLIKEは使えない
LIKE演算子は文字列を比較する演算子なので、DATE型の日付列では利用することができません。
例えば
2022-01-01
2022-01-21
2022-02-23
2022-04-15
みたいなデータがあって、 1月のデータだけ絞り込みたいと思って
LIKE 2022-01% みたいな書き方をしてもエラーで取得ができないということです。これができたらかんたんだったなぁっと思って頑張ってました
SQLの日付の範囲指定はBETWEENやANDを組み合わせよう
例えば日付という列から2月の日付だけを絞りたいとき
ANDで絞り込む場合
SELECT * FROM テーブル名
WHERE 日付 >= '2022-02-01' AND 日付 <= '2022-02-28'
BETWEENを使う場合
SELECT * FROM テーブル名
WHERE 日付 BETWEEN '2022-02-01' AND '2022-02-28'
こんなかんじで絞り込みをしていきましょう
ソートをしたい場合は最後に ORDER BY 日付 プラスアルファ
昇順 数字が小さい順で並べる:ORDER BY 日付 ASC
降順 数字が大きい順で並べる:ORDER BY 日付 DESC
をつけてソートしましょう