2016-04-26 9 views
1

私はpostgresqlで日付と接続していない時間+分間隔からレコードを取得しようとしています。たとえば、15:15〜18:30の間に作成された先月のすべてのレコード。postgresqlで2時間のRailsクエリタイムスタンプ

私はこれを見つけましたanswerしかし、postgresqlでは動作しません。私は分をどのように扱うか見当がつかないが、私は

Review.where("extract('hour' from created_at) > 15 AND extract('hour' from created_at) < 18") 

SELECT "reviews".* FROM "reviews" WHERE (extract('hour' from created_at) > 15 AND extract('hour' from created_at) < 18) 

をしようとしただけで時間のために

+0

あなたはそこに解決策のpostgreバージョンを試してみましたか? –

+0

うん、それは私が上にwritedと同様の抽出物を含んでいます。 – Jaro

+0

どこにキーワードがありますか? –

答えて

2

created_attime(日付は含まれません)にキャストしてからBETWEENを使用してください。 Railsの通過来る

#= select * from times; 
      t 
--------------------- 
2016-01-01 12:00:00 
2016-02-02 13:00:00 
2016-03-03 14:00:00 
2016-04-04 15:00:00 
(4 rows) 
#= select * from times where t::time between '12:30:00' AND '14:30:00'; 
      t 
--------------------- 
2016-02-02 13:00:00 
2016-03-03 14:00:00 
(2 rows) 

、それは次のようになります。

Review.where("created_at::time BETWEEN '12:30:00' AND '14:30:00'")