Ich habe einen Bereich, der für heutige Anrufe abfragt. Basierend auf dem Umfang zähle ich die Anzahl der Anrufe für heute.Abfragen des Datumsbereichs in Schienen
Meine Daten werden in UTC gespeichert, aber die Schienen werden in meine lokale Zeitzone konvertiert. Was ich versuche zu tun ist, alle Anrufe zwischen heute um 00:00 und 23:59 zu finden.
Scope:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
irb Ausgang: (Der Anruf es aufgrund UTC fängt)
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 man nur Anrufe abzufragen, die zwischen 00.00 Uhr waren und 23:59 für heute. Bisher funktioniert der Versuch, mit und ohne utc, zone usw. zu screenen, nicht. Es zieht den Bereich basierend auf UTC fort, der den Anruf von gestern einschließt (gestern, wenn er mit der lokalen Zeitzone formatiert ist).
Wie kann ich zwischen den beiden Zeiten abfragen, um die richtige Ausgabe zu erhalten? Ich bin hier irgendwie verloren.
können Sie bitte bitte Ihre Fragen klar machen, bedeutet, welches Modell Sie Umfang gegeben haben, und im Grunde haben Sie heute nicht als Anwendungsbereich geschrieben. –