Ho un ambito che richiede le chiamate di oggi. Basato fuori dal campo di applicazione, lo uso per contare la quantità di chiamate per oggi.Interrogazione per intervallo di date nei binari
Le mie date sono memorizzate in UTC ma i binari vengono convertiti nel fuso orario locale. Quello che sto cercando di fare è trovare tutte le chiamate tra oggi alle 00:00 e alle 23:59.
Ambito:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
uscita IRB: (La chiamata di cattura a causa di 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
Sto cercando di capire come interrogare solo le chiamate che sono state tra le 00:00 e 23:59 per oggi. Finora il tentativo di esplorare con e senza utc, zone, ecc non funziona. Mantiene l'ambito basato su UTC che include la chiamata di ieri (ieri se è formattata con il fuso orario locale).
Come posso eseguire una query tra le due volte per ottenere l'output corretto? Sono un po 'perso qui.
puoi per favore chiarire le tue domande per favore, significa quale modello hai dato lo scope, e in fondo non hai scritto oggi come scope. –