एमएस एसक्यूएल सर्वर निम्नतम स्तर पर तारीखों के साथ कुछ अजीब काम करता है। उदाहरण के लिए निम्न स्क्रिप्ट पर विचार करें:
select
test1 = dateadd(ms,-1,convert(datetime,'20110504')),
test2 = dateadd(ms,-2,convert(datetime,'20110504')),
test3 = dateadd(ms,-3,convert(datetime,'20110504')),
test4 = dateadd(ms,-4,convert(datetime,'20110504')),
test5 = dateadd(ms,-5,convert(datetime,'20110504')),
test6 = dateadd(ms,-6,convert(datetime,'20110504'))
यह रिटर्न:
test1 test2 test3 test4 test5 test6
----------------------- ----------------------- ----------------------- ----------------------- ----------------------- -----------------------
2011-05-04 00:00:00.000 2011-05-03 23:59:59.997 2011-05-03 23:59:59.997 2011-05-03 23:59:59.997 2011-05-03 23:59:59.993 2011-05-03 23:59:59.993
आप देख सकते हैं एमएस एसक्यूएल केवल निकटतम 3. करने के लिए मिलीसेकेंड के साथ काम कर रहा है आप इन वे गोल करने के बीच जाएँ। यह संभव है कि यह तब हो रहा है जब डेटटाइम। मैक्सवेल्यू एसक्यूएल में संग्रहीत हो रहा है।
स्रोत
2011-05-25 15:52:43
आप किस डेटाबेस का उपयोग कर रहे हैं और डेटाबेस में कौन सा डेटा प्रकार दिनांक संग्रहीत कर रहा है? – David
बहुत ही रोचक सवाल @ dev.e.loper –
क्या आपने डेटाटाइम 2 का प्रयास किया था? अच्छे प्रश्न के लिए http://technet.microsoft.com/en-us/library/bb677335.aspx –