日時がそれぞれのカラムを持っているときの検索方法
日付および時間がそれぞれ文字列としてDBに格納されている時の検索方法をメモとして残します。
start_datetime = '2020/12/22 23:35'
scope = Post.all
start_date, start_time = start_datetime.split(' ')
# 該当する日付以降のものを抽出
scope = scope.where('start_date >= ?', start_date)
# start_date が等しい時の該当しない時間を除去
scope = scope.where.not('start_date = ? AND start_time < ?', start_date, start_time)
参考
- Rails における内部結合、外部結合まとめ