Rails(SQLite3)の期間指定の方法

こんにちは!

今回はRails(SQLite3)の期間指定の方法についてまとめます。

環境

やりたいこと

  • DBから作成日時の年ごと、月ごとでデータを取得したい

方法

年ごとに取得

where("strftime('%Y', created_at) = '2024' ")

月ごとに取得

where("strftime('%m', created_at) = '01' ") 

解説

記号 対象 注意点
%Y 大文字のY
%m 01-12(2桁の0埋めで取得される)
%d
%w 曜日 0-6 (日曜日が0、土曜日が6)
  • 今回の例ではcreated_atカラム内の指定したフォーマットの値が、202401と一致するレコードを取得する
  • strftimeはSQLite3の場合の関数
  • 他のDBMSではEXTRACTなどで代用する

おわりに

今回はRailsで期間指定をする方法についてまとめました。不等号などで範囲指定する方法もありますが、より簡潔に記述できる方法を調べた結果上記のような方法が見つかりました。使い方を覚えたら便利だと思うので活用していきたいと思います。

52/100