このサイトはアドセンスやアフィリエイト広告を利用しています

SQL

解決!SQL 日付範囲の取得どうやって絞り込む?like演算子はだめ?

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

をつけてソートしましょう

-SQL
-