例えば、レコードの作成時間(timestamp型)が9時〜17時であるもののみ取得したいとき、以下のSQLになる。
1 2 3 4 |
select * from books where '09:00' <= to_char(created_at, 'HH24:MI') and to_char(created_at, 'HH24:MI') < '17:00' |
気をつけるべきは'HH24:MI'
でフォーマットしているので、'9:00'
ではなく'09:00'
になること。
もしRubyで検索条件の時間を動的につくる場合は、Time.now.to_s(:time)
のような変換をしてあげると、このフォーマットに適した文字列になる。