Die Abfrage für den Datumsbereich in rails
Habe ich einen Bereich, der Abfragen für die heutigen Anrufe. Basierend auf dem Umfang ich es nutzen zu zählen, die Anzahl der Anrufe für heute.
Meine Termine werden in UTC gespeichert, sondern Schienen wandelt auf meinem lokalen Zeitzone. Was ich versuche zu tun ist, finden alle Anrufe zwischen heute um 00:00 und 23:59.
Umfang:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
irb-Ausgang: (Die nennen es fängt aufgrund UTC)
irb(main):010:0> Call.last.transfer_date
Call Load (0.9ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> Sun, 07 Oct 2012 19:45:00 CDT -05:00
irb(main):011:0>
irb(main):011:0> Call.last.transfer_date.utc
Call Load (1.3ms) SELECT "calls".* FROM "calls" ORDER BY "calls"."id" DESC LIMIT 1
=> 2012-10-08 00:45:00 UTC
Ich versuche, herauszufinden, wie die Abfrage nur fordert, dass zwischen 00:00 und 23:59 für heute. Bisher versuchen, den Umfang mit und ohne utc, zone, etc funktioniert nicht. Es hält ziehen Sie die Rahmen basierend auf der UTC-was beinhaltet der Anruf von gestern (gestern, wenn es formatiert ist, die mit der lokalen Zeitzone).
Wie kann ich eine Abfrage zwischen den beiden Zeiten zu bekommen, die richtige Ausgabe? Ich bin irgendwie hier verloren.
- können Sie bitte stellen Sie Ihre Fragen klar, bitte, bedeutet, welches Modell Sie gab den Rahmen, und unten Sie hat nicht geschrieben, die heute als Rahmen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein exklusives Sortiment.
War ich in der Lage zu kompensieren UTC durch umschreiben meinem Anwendungsbereich wie folgt:
Vielleicht ist das übertrieben, aber ich würde vorschlagen, mit ein-Helfer-Methode für das erhalten der Zeit-Reihe und dann die Abfrage der db. So etwas wie
wird Ihnen helfen, zu verlangen, die Zeit reicht. Also wenn Sie so etwas wie;
wird es wieder der Zeitraum für 0 Tagen (also heute);
Und dann kannst du einfach eine Abfrage der Datenbank-Objekt und zählen Sie alles, was in dem Bereich mit;