こんにちは!
今回はRails(SQLite3)の期間指定の方法についてまとめます。
環境
- Rails 5.2.8.1
やりたいこと
- DBから作成日時の年ごと、月ごとでデータを取得したい
方法
年ごとに取得
where("strftime('%Y', created_at) = '2024' ")
月ごとに取得
where("strftime('%m', created_at) = '01' ")
解説
strftime
はSQLiteの関数
記号 | 対象 | 注意点 |
---|---|---|
%Y | 年 | 大文字のY |
%m | 月 | 01-12(2桁の0埋めで取得される) |
%d | 日 | |
%w | 曜日 | 0-6 (日曜日が0、土曜日が6) |
- 今回の例では
created_at
カラム内の指定したフォーマットの値が、2024
、01
と一致するレコードを取得する strftime
はSQLite3の場合の関数- 他のDBMSでは
EXTRACT
などで代用する
おわりに
今回はRailsで期間指定をする方法についてまとめました。不等号などで範囲指定する方法もありますが、より簡潔に記述できる方法を調べた結果上記のような方法が見つかりました。使い方を覚えたら便利だと思うので活用していきたいと思います。
52/100