2016-04-26 14 views
1

Ich versuche, Datensätze aus Stunden + Minuten Intervall nicht mit Datum in Postgresql verbunden zu bekommen. Zum Beispiel alle Datensätze vom letzten Monat, die zwischen 15:15 und 18:30 erstellt wurden.Rails Abfrage Zeitstempel zwischen zwei Stunden mit postgresql

Ich habe diese answer gefunden, aber es funktioniert nicht in postgresql.

Nur Stunden habe ich versucht,

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) 

aber ich habe keine Ahnung, wie man mit dem Protokoll beschäftigen.

+0

Sie es Version postgre Lösung versucht haben? –

+0

Ja, es enthält einen Extrakt ähnlich dem, was ich oben geschrieben habe. – Jaro

+0

wo ist zwischen Schlüsselwort? –

Antwort

2

Sie können created_at in eine time (die das Datum nicht enthält) umwandeln und dann BETWEEN verwenden.

#= 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) 

durch Rails kommen, das wäre:

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