Ruby on Rails-Abfrage datetime-range ( letzten 24, 48, usw... Stunden )
Ich versuche eine Abfrage zu erstellen, die Suche nach letzten Einträge basiert auf der Spalte 'last_login_at'. Dies ist ein datetime-Feld mit der Zeitzone (d.h. Time.zone.now
)
Wenn ich ausführen
User.find(:all, :conditions => ["last_login_at < ?", 24.hours.ago])
Bekomme ich nichts.
Alternativ kann ich definieren heute wie Time.zone.today
und gestern, als Time.zone.today - 1.day
und laufen
User.find(:all, :conditions => ["last_login_at between ? and ?", today, yesterday])
und es noch gibt 0 Ergebnisse. Ich weiß, es gibt einige Einträge, die in diese Kategorie fallen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicherzustellen, dass die Zeitzonen, die Sie aufgenommen haben, in der Datenbank und diejenigen, die Ihre rails-app ist die Ausgabe gleich sind. Dies kann manchmal ein Problem verursachen. Ansonsten versuchen, diese benannten Bereich:
so dass Sie zu tun:
oder
Alte Frage, aber hier ist eine neuere syntax:
3.days.ago.beginning_of_day
.