डेटटाइम को अक्सर पूर्णांक भाग पर पूर्व-निर्धारित तिथि (आमतौर पर युग के रूप में जाना जाता है) से दिन की गणना के रूप में दर्शाया जाता है और आंशिक भाग पर मध्य-रात्रि के बाद से बीत चुके दिन का प्रतिशत होता है।
SQL सर्वर इसका अपवाद नहीं है, इस प्रकार फ्लोट में रूपांतरण बहुत मायने रखता है। दिन 0 जनवरी 01 1900 00:00:00 है (AFAIK, किसी विशेष समय-क्षेत्र में नहीं, इसलिए आप इसे "स्थानीय समय" मानेंगे)।
तो, आप इसे आजमा सकते हैं:
declare @ADate DateTime;
set @ADate = '19000101 00:00:00';
select CONVERT(float, @ADate); --should print 0
set @ADate = '19000101 12:00:00';
select CONVERT(float, @ADate); --should print 0.5
set @ADate = '19001231 06:00:00';
select CONVERT(float, @ADate); --should print 364.25
तो, आपके परिणामों के लिए, 01/01/1900 00:00:00 और 01/07/2010 00:00:00
से 40183 दिन बीत चुके हैं।स्पष्टीकरण:यूनिक्स जैसे सिस्टम डेटाटाइम को स्टोर करने के लिए एक अलग दृष्टिकोण का उपयोग करते हैं:यूनिक्स युग के बाद से सेकंड (1 जनवरी 1970 00:00:00 यूटीसी), जिसे युग समय के रूप में जाना जाता है।
[संपादित करें] SQL सर्वर के साथ कुछ नए वर्षों के अनुभव के बाद (और जैसा कि @Damien ने अपनी टिप्पणी में कहा) इस प्रतिक्रिया पर दिनांक प्रारूप को YYYYMMDD प्रारूप में 20140416 में बदल दिया गया था। यह एकमात्र सुरक्षित प्रारूप है।