मेरे पास एक ऐसा दायरा है जो आज की कॉल के लिए पूछताछ करता है। दायरे के आधार पर मैं आज के लिए कॉल की मात्रा गिनने के लिए इसका उपयोग करता हूं।रेलों में दिनांक सीमा के लिए पूछताछ
मेरी तिथियां यूटीसी में संग्रहीत हैं लेकिन रेल मेरे स्थानीय टाइमज़ोन में परिवर्तित हो जाती हैं। मैं जो करने की कोशिश कर रहा हूं वह आज 00:00 और 23:59 बजे के बीच सभी कॉल ढूंढता है।
स्कोप:
scope :today, where("DATE(transfer_date) BETWEEN ? AND ?", Time.zone.now.utc.beginning_of_day, Time.zone.now.utc.end_of_day)
आईआरबी उत्पादन: (कॉल यह यूटीसी के कारण फैल जाती है)
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
मैं यह पता लगाने की कैसे केवल कॉल कि 0:00 के बीच थे क्वेरी करने के लिए कोशिश कर रहा हूँ
और आज के लिए 23:59। अब तक यूटीसी, जोन आदि के साथ और बिना गुंजाइश करने की कोशिश कर रहा है। यह यूटीसी के आधार पर दायरे को खींचता रहता है जिसमें कल से कॉल शामिल है (कल अगर यह स्थानीय टाइमज़ोन के साथ स्वरूपित है)।
सही आउटपुट प्राप्त करने के लिए मैं दो बार पूछताछ कैसे कर सकता हूं? मैं यहाँ खो गया हूँ।
scope :today, where("transfer_date BETWEEN ? AND ?", Time.zone.now.beginning_of_day, Time.zone.now.end_of_day)
क्या आप कृपया अपने प्रश्न स्पष्ट कर सकते हैं, इसका मतलब है कि आपने किस मॉडल को दायरा दिया है, और नीचे आप आज के रूप में नहीं लिखा था। –