2014-09-04 8 views
5

मेरे पास एक चर है जो डेटटाइमऑफसेट प्रकार का है। मैं, सभी परियोजनाओं 1st जनवरी के बाद बनाए गए फ़िल्टर करना चाहते हैं 2010दो डेटटाइमऑफसेट की तुलना कैसे करें?

तो मैं निम्न क्वेरी ने लिखा है:

var _date = new DateTimeOffset(2010, 01, 01, 0, 0, 0, new TimeSpan(-7, 0, 0)); 

    var projects = _repository.Find<Project> 
       (x => x.CompanyId = CompId && x.CreatedOn > _date) 
       .ToList(); 

लेकिन जब मैं डेटाबेस को देखो, उन प्रकार के होते हैं मूल्यों की मैं देख रहा हूँ:

2001-01-25 05:21:46.4370000 -08:00 
2005-06-17 00:00:00.0000000 -07:00 

जाहिर है, मूल्यों के कुछ -08 है: 00 और दूसरों -07 है: 00। तो क्या मेरा उपरोक्त प्रश्न अभी भी प्रासंगिक है? जब मैं नतीजे देखता हूं, तो फ़िल्टरिंग की जा रही है जिस तरह से मैं इसकी अपेक्षा कर रहा हूं। एकमात्र चिंता यह है कि उस ऑफसेट भाग का अर्थ क्या हो सकता है, परिणाम दुर्घटना से अच्छा है।

मैं डेईटाइमऑफसेट काम से परिचित नहीं हूं।

उत्तर

8

तो क्या मेरा उपरोक्त प्रश्न अभी भी प्रासंगिक है?

हां। जब आप दो DateTimeOffset मानों की तुलना करते हैं, तो यह "पूर्ण" समय की तुलना की जाती है। प्रलेखन UtcDateTime संपत्ति के संदर्भ में इसके बारे में बात करता है। उदाहरण के लिए, से op_GreaterThan documentation:

सच अगर की UtcDateTime मूल्य छोड़ दिया बाद में सही की UtcDateTime मूल्य से है; अन्यथा, झूठी

तब तक जब तक आप चाहते हैं कि व्यवहार (जिसे मैं कल्पना करता हूं), आपको ठीक होना चाहिए। (माना जाता है कि हम नहीं जानते कि क्वेरी कहां निष्पादित की जा रही है - यदि यह LINQ से SQL या EF है, तो आप पर भरोसा कर रहे हैं कि समान अर्थशास्त्र लागू करना, लेकिन मुझे लगता है कि यह एक उचित उम्मीद है।)

5

डेटटाइम ऑफसेट & स्थान पर जीएमटी से ऑफ़सेट बनाए रखता है जहां मूल्य उत्पन्न हुआ था। इसका मतलब है कि "2001-01-25 05: 21: 46.4370000 -08: 00" एक स्थान और वर्ष का समय (डीएसटी के सापेक्ष) में दर्ज किया गया था जो जीएमटी के पीछे 8 घंटे था, जबकि "2005-06-17 00: 00: 00.0000000 -07: 00 "जीएमटी के पीछे 7 घंटे पहले वर्ष के & स्थान पर दर्ज किया गया था।

हालांकि, तुलना किए जाने पर टाइमज़ोन भाग को नजरअंदाज कर दिया जाता है। दूसरे शब्दों में, प्रत्येक दिनांक समय जीएमटी/यूटीसी में परिवर्तित हो जाता है और उनकी तुलना की जाती है।

संबंधित मुद्दे