0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsで今日から2ヶ月前までのレコードを取得する方法

Last updated at Posted at 2019-10-17

Railsで日付の範囲検索をした際に、「今日〜2ヶ月前まで」みたいな記述を探したが、見つからなかったので自分用のメモとして残します。

実現したいこと

今日から2ヶ月前までに作成されたレコードを取得したい

例)
今日:2019/10/10
2ヶ月前:2019/08/01

上記の例だと、作成日が 2019/08/01 から 2019/10/10 までのレコードを取得したい。

結論

日付の設定

start_month = 2.months.ago.all_month.first
end_month = Time.current

ActiveRecordのwhere

where(created_at: start_month..end_month)

以下は、自分のまとめです。

プログラム

2ヶ月前の日付(Range)を取得(上記の例だと、2019/08/01~2019/08/31)

2.months.ago.all_month

今月の日付を取得(上記の例だと、2019/10/10)

Time.current

つまづいた所

いざ、上の記載(プログラムの段落)でプログラムを組んでも、bad value for rangeエラーが出るばかりでうまくいかず、帰宅途中に、2.months.ago.all_month はその月の初日と末日を含んでいるため、rangeの書き方がおかしいことに気付く。

そして、結論の記載に至る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?