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

SQL सर्वर (T-SQL) में 'स्मॉलडेटटाइम' को 'डेटाटाइम' में बदलने के उदाहरण

इस लेख में छोटे दिनांक समय . को रूपांतरित करने के उदाहरण हैं एक डेटाटाइम . के लिए मान SQL सर्वर में मान।

जब आप एक छोटे दिनांक समय . को रूपांतरित करते हैं डेटाटाइम . के लिए मान , घंटे और मिनट कॉपी किए जाते हैं, और सेकंड और भिन्न सेकंड 0 . पर सेट होते हैं ।

उदाहरण 1 - CAST () का उपयोग करके स्पष्ट रूपांतरण

यहां स्पष्ट रूपांतरण का एक उदाहरण दिया गया है। इस मामले में, मैं CAST() . का उपयोग करता हूं सीधे SELECT . के अंदर काम करता है स्मॉलडेटटाइम . से स्पष्ट रूप से कनवर्ट करने के लिए स्टेटमेंट से डेटाटाइम . तक .

DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  CAST(@thesmalldatetime AS datetime) AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| thesmalldatetime    | datetime                |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

सबसे पहले, हम देख सकते हैं कि the smalldatetime मान 00 का उपयोग करता है सेकंड घटक के लिए, भले ही हम इसे स्पष्ट रूप से 29 . पर सेट करते हैं . ऐसा इसलिए है क्योंकि the smalldatetime . का उपयोग करते समय डेटा प्रकार, सेकंड हमेशा शून्य होते हैं (और आंशिक सेकंड के बिना)।

इसलिए, जब हम मान को डेटाटाइम . में बदलते हैं , सेकंड मान (और भिन्नात्मक सेकंड) शून्य पर सेट हैं। अगर हमने अभी मूल मान डेटाटाइम . को असाइन किया होता सबसे पहले, सेकंड बरकरार रहेंगे:

DECLARE @thedatetime datetime
SET @thedatetime = '2031-03-25 11:15:29'
SELECT @thedatetime AS 'thedatetime';

परिणाम:

+-------------------------+
| thedatetime             |
|-------------------------|
| 2031-03-25 11:15:29.000 |
+-------------------------+

न केवल सेकंड बरकरार रहेंगे, बल्कि कोई भी आंशिक सेकंड भी बरकरार रहेगा (लेकिन केवल 3 के पैमाने तक):

DECLARE @thedatetime datetime
SET @thedatetime = '2031-03-25 11:15:29.123'
SELECT @thedatetime AS 'thedatetime';

परिणाम:

+-------------------------+
| thedatetime             |
|-------------------------|
| 2031-03-25 11:15:29.123 |
+-------------------------+

उदाहरण 2 - गोलाई

यहां बताया गया है कि क्या होता है यदि हम सेकंड घटक को smalldatetime को निर्दिष्ट करने से पहले उच्च मान पर सेट करते हैं डेटा प्रकार।

DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:31'
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  CAST(@thesmalldatetime AS datetime) AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| thesmalldatetime    | datetime                |
|---------------------+-------------------------|
| 2031-03-25 11:16:00 | 2031-03-25 11:16:00.000 |
+---------------------+-------------------------+

तो मिनट घटक को अब अगले मिनट तक पूर्णांकित कर दिया गया है।

उदाहरण 3 - CONVERT() का उपयोग करके स्पष्ट रूपांतरण

यह पहले उदाहरण जैसा ही है, इस समय को छोड़कर मैं CONVERT() . का उपयोग करता हूं CAST() के बजाय फ़ंक्शन करें .

DECLARE @thesmalldatetime smalldatetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  CONVERT(datetime, @thesmalldatetime) AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| thesmalldatetime    | datetime                |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

उदाहरण 4 - निहित रूपांतरण

यहाँ एक ही काम करने का एक उदाहरण है, लेकिन एक अंतर्निहित प्रकार के रूपांतरण का उपयोग करना।

DECLARE @thesmalldatetime smalldatetime, @thedatetime datetime
SET @thesmalldatetime = '2031-03-25 11:15:29'
SET @thedatetime = @thesmalldatetime
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  @thedatetime AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| thesmalldatetime    | datetime                |
|---------------------+-------------------------|
| 2031-03-25 11:15:00 | 2031-03-25 11:15:00.000 |
+---------------------+-------------------------+

इसलिए हमें एक ही परिणाम मिलता है, भले ही यह एक स्पष्ट या निहित रूपांतरण हो।

यह एक अंतर्निहित रूपांतरण है क्योंकि हम इसे स्पष्ट रूप से रूपांतरित करने के लिए रूपांतरण फ़ंक्शन का उपयोग नहीं कर रहे हैं। हम केवल एक डेटा प्रकार के एक चर से दूसरे डेटा प्रकार के एक चर के लिए मान निर्दिष्ट कर रहे हैं। इस मामले में, जब हम smalldatetime असाइन करने का प्रयास करते हैं, तो SQL सर्वर पर्दे के पीछे एक अंतर्निहित रूपांतरण करता है। एक डेटाटाइम . के लिए मान चर।


  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 Server 2008 का उपयोग करके तालिका से शीर्ष 1000 पंक्तियों को कैसे हटाएं?

  2. क्या SQL में LIKE और IN का संयोजन है?

  3. SQL सर्वर (T-SQL) में डेटाबेस मेल कतारों की स्थिति की जाँच करें

  4. JSON_MODIFY () SQL सर्वर में उदाहरण (T-SQL)

  5. SQL सर्वर केवल नवीनतम मान का उपयोग करके विशिष्ट पंक्तियों का चयन करता है