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

दिनांक रूपांतरण और संस्कृति:DATE और DATETIME के ​​बीच का अंतर

DATETIME . के लिए ISO-8601 (पुराना प्रकार) किसी तरह "टूटा" या "अनुकूलित" है (इस पर निर्भर करता है कि आप इसे बग या फीचर के रूप में देखते हैं) - आपको YYYYMMDD का उपयोग करने की आवश्यकता है (बिना कोई भी डैश) भाषा सेटिंग के बावजूद इसे काम करने के लिए।

DATE के लिए या DATETIME2(n) डेटाटाइप, इसे ठीक कर दिया गया है और "उचित" ISO-8601 प्रारूप YYYY-MM-DD हमेशा सही ढंग से व्याख्या की जाएगी।

-- OK because of "adapted" ISO-8601
SET LANGUAGE GERMAN;
DECLARE @dt DATETIME='20170113'; 

SELECT @dt;

SELECT CAST('20170113' AS DATETIME);
SELECT CONVERT(DATETIME, '20170113'); 

-- OK because of DATETIME2(n)
SET LANGUAGE GERMAN;
DECLARE @dt2 DATETIME2(0) = '2017-01-13'; 

SELECT @dt2;

SELECT CAST('2017-01-13' AS DATETIME2(0));
SELECT CONVERT(DATETIME2(0), '2017-01-13'); 

यह DATETIME की एक विचित्रता है टाइप करें (और केवल एक ही नहीं ....) - बस इसे पंजीकृत करें, इसके बारे में जानें - और आगे बढ़ें (मतलब:DATETIME का उपयोग न करें अब और - DATE का उपयोग करें या DATETIME2(n) इसके बजाय - साथ काम करना बहुत अच्छा है!) :-)



  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. स्कोप_पहचान बनाम पहचान_वर्तमान

  3. सभी विदेशी कुंजी बाधाओं को अस्थायी रूप से अक्षम करें

  4. SQL सर्वर में वर्षों से स्ट्रिंग एकत्रीकरण

  5. एग्रीगेट फ़ंक्शन का उपयोग करके तालिका से अधिकतम और न्यूनतम मान कैसे प्राप्त करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 129