Ruby2.7.1
Rails6.0.3.3
で確認
久しぶりにRailsでDBの検索処理を書いていて日付の比較の検索ってどう書くんだと調べていたのでメモ書き。
調べてるとたいてい、SQLを書くかArel使うかみたいのばっかで他に無いのかと調べていたら下記のような書き方でもいけた。
[0] pry(main)> User.where(created_at: ..DateTime.now)
User Load (0.7ms) SELECT `users`.* FROM `users` WHERE `users`.`created_at` <= '2020-10-27 14:41:26.943067'
[
[0] #<User:0x000055861898f208> {
:id => 1,
:created_at => Tue, 27 Oct 2020 14:18:54 JST +09:00,
:updated_at => Tue, 27 Oct 2020 14:18:54 JST +09:00,
}
]
逆は
User.where(created_at: DateTime.now..)
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`created_at` >= '2020-10-27 14:52:57.534880'
へぇって感じ。