Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

डेटाटाइम को फ्लोट में कनवर्ट करते समय SQL का कन्वर्ट फ़ंक्शन कैसे काम करता है?

डेटटाइम को अक्सर पूर्णांक भाग पर पूर्व-निर्धारित तिथि (आमतौर पर युग के रूप में जाना जाता है) से दिन की गणना के रूप में दर्शाया जाता है और आंशिक भाग पर मध्य-रात्रि के बाद से बीत चुके दिन का प्रतिशत होता है।

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 में बदल दिया गया था। यह एकमात्र सुरक्षित प्रारूप है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में परिणाम सेट में लौटाए गए कॉलम के डेटा प्रकार का पता लगाएं

  2. SQL सर्वर में डेटाटाइम बनाम स्मालडेटाइम:क्या अंतर है?

  3. NOLOCK (एसक्यूएल सर्वर संकेत) खराब अभ्यास है?

  4. ऑटोइनक्रिकमेंट वाले कॉलम के लिए स्टार्ट वैल्यू सेट करें

  5. प्रत्येक संकलन के बाद पहली बार लोड करने के लिए इकाई ढांचा बहुत धीमा