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

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

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

स्मॉलडेटटाइम डेटा प्रकार में कोई आंशिक सेकंड नहीं होता है, और इसका सेकंड घटक हमेशा शून्य (:00) पर सेट होता है। इसकी सटीकता निकटतम मिनट तक है।

डेटाटाइम दूसरी ओर, डेटा प्रकार में 3 अंकों का भिन्नात्मक सेकंड का भाग शामिल होता है, और इसकी सटीकता .000, .003, या .007 सेकंड की वृद्धि तक होती है।

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

ज़्यादातर मामलों में, बेहतर होगा कि आप datetime2 . में कनवर्ट करें डेटाटाइम . के बजाय डेटा प्रकार . ऐसा करने से समान संग्रहण आकार का उपयोग करते हुए, अधिक सटीकता प्रदान की जाएगी। हालांकि, अगर आपको वास्तव में इसकी आवश्यकता है डेटाटाइम , यहां कुछ उदाहरण दिए गए हैं।

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

यहां स्मॉलडेटटाइम . के बीच निहित रूपांतरण का एक उदाहरण दिया गया है और डेटाटाइम .

DECLARE 
  @thesmalldatetime smalldatetime,
  @thedatetime datetime;
SET @thesmalldatetime = '2025-05-21 10:15:30';
SET @thedatetime = @thesmalldatetime;
SELECT 
  @thesmalldatetime AS 'smalldatetime',
  @thedatetime AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| smalldatetime       | datetime                |
|---------------------+-------------------------|
| 2025-05-21 10:16:00 | 2025-05-21 10:16:00.000 |
+---------------------+-------------------------+

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

इस उदाहरण में हम देख सकते हैं कि स्मॉलडेटटाइम मान में भिन्नात्मक सेकंड शामिल नहीं हैं, सेकंड को शून्य पर सेट कर दिया गया है, और मिनट को उस वास्तविक मान से गोल कर दिया गया है जिसे मैंने इसे असाइन करने का प्रयास किया था।

हालांकि, डेटाटाइम मान में एक 3-अंकीय भिन्नात्मक भाग शामिल होता है जो शून्य पर सेट होता है।

उदाहरण 2 - भिन्नात्मक भाग बदलें

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

इस उदाहरण में, मैं DATEADD() . का उपयोग करता हूं डेटाटाइम . के भिन्नात्मक सेकंड को संशोधित करने के लिए कार्य करता है मूल्य।

DECLARE 
  @thesmalldatetime smalldatetime,
  @thedatetime datetime;
SET @thesmalldatetime = '2025-05-21 10:15:30';
SET @thedatetime = @thesmalldatetime;
SELECT 
  @thesmalldatetime AS 'smalldatetime',
  @thedatetime AS 'datetime',
  DATEADD(millisecond, 123, @thedatetime) AS 'datetime Modified';

परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):

smalldatetime     | 2025-05-21 10:16:00
datetime          | 2025-05-21 10:16:00.000
datetime Modified | 2025-05-21 10:16:00.123

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

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

DECLARE @thesmalldatetime smalldatetime;
SET @thesmalldatetime = '2025-05-21 10:15:30';
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  CAST(@thesmalldatetime AS datetime) AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| smalldatetime       | datetime                |
|---------------------+-------------------------|
| 2025-05-21 10:16:00 | 2025-05-21 10:16:00.000 |
+---------------------+-------------------------+

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

यहां CONVERT() . का उपयोग करके स्पष्ट रूपांतरण का एक उदाहरण दिया गया है CAST() के बजाय फ़ंक्शन करें .

DECLARE @thesmalldatetime smalldatetime;
SET @thesmalldatetime = '2025-05-21 10:15:30';
SELECT 
  @thesmalldatetime AS 'thesmalldatetime',
  CONVERT(datetime, @thesmalldatetime) AS 'datetime';

परिणाम:

+---------------------+-------------------------+
| smalldatetime       | datetime                |
|---------------------+-------------------------|
| 2025-05-21 10:16:00 | 2025-05-21 10:16:00.000 |
+---------------------+-------------------------+

जैसा कि बताया गया है, datetime2 . में कनवर्ट करने पर विचार करें डेटाटाइम . के बजाय डेटा प्रकार . ऐसा करने से समान संग्रहण आकार का उपयोग करते हुए अधिक सटीकता मिलती है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Statement.setFetchSize(nSize) विधि वास्तव में SQL सर्वर JDBC ड्राइवर में क्या करती है?

  2. SQL सर्वर तालिका में कंप्यूटेड कॉलम कैसे जोड़ें - SQL सर्वर / T-SQL ट्यूटोरियल भाग 47

  3. SQL सर्वर (T-SQL उदाहरण) में 'datetime2' को 'smalldatetime' में बदलें

  4. SQL सर्वर पर हमेशा उपलब्धता समूहों को कॉन्फ़िगर करना

  5. SQL सर्वर TRIM, LTRIM, और RTRIM फ़ंक्शन