इस लेख में datetime2 . को रूपांतरित करने के उदाहरण हैं तारीख . के लिए मान SQL सर्वर में मान।
जब आप किसी डेटाटाइम2 . को रूपांतरित करते हैं तारीख . के लिए मान डेटा प्रकार, आप समय भाग खो देते हैं। हालाँकि, आप भंडारण आकार को 7 और 9 बाइट्स से घटाकर 3 बाइट्स कर सकते हैं। किसी भी स्थिति में, आप यह रूपांतरण केवल तभी करेंगे जब आपको समय भाग की आवश्यकता न हो।
डेटाटाइम2 डेटा प्रकार में दिनांक और समय शामिल होता है, जिसमें 0 और 7 के बीच एक भिन्नात्मक सेकंड भाग होता है (यह इस पर निर्भर करता है कि इसे कितने भिन्नात्मक सेकंड दिए गए हैं)। इसकी सटीकता 100 नैनोसेकंड है।
तारीख दूसरी ओर, डेटा प्रकार में समय शामिल नहीं है, और इसकी सटीकता 1 दिन है।
उदाहरण 1 - निहित रूपांतरण
यहां datetime2 . के बीच निहित रूपांतरण का एक उदाहरण दिया गया है और तारीख .
DECLARE @thedatetime2 datetime2, @thedate date; SET @thedatetime2 = '2025-05-21 10:15:30.1234567'; SET @thedate = @thedatetime2; SELECT @thedatetime2 AS 'datetime2', @thedate AS 'date';
परिणाम:
+-----------------------------+------------+ | datetime2 | date | |-----------------------------+------------| | 2025-05-21 10:15:30.1234567 | 2025-05-21 | +-----------------------------+------------+
यह एक अंतर्निहित रूपांतरण है क्योंकि हम इसे स्पष्ट रूप से परिवर्तित करने के लिए रूपांतरण फ़ंक्शन (जैसे नीचे वाले) का उपयोग नहीं कर रहे हैं। इस मामले में, जब हम datetime2 असाइन करने का प्रयास करते हैं, तो SQL सर्वर परदे के पीछे एक अंतर्निहित रूपांतरण करता है तारीख . के लिए मान चर।
यहां हम देख सकते हैं कि तारीख मान में केवल दिनांक (समय घटक के बिना) शामिल है।
इस उदाहरण में, datetime2 value डिफ़ॉल्ट परिशुद्धता का उपयोग करता है (जिसके परिणामस्वरूप 7 दशमलव स्थान होते हैं)। इसे किसी भी संख्या में घटाया जा सकता है और रूपांतरण परिणाम वही होगा।
DECLARE @thedatetime2 datetime2(0), @thedate date; SET @thedatetime2 = '2025-05-21 10:15:30.1234567'; SET @thedate = @thedatetime2; SELECT @thedatetime2 AS 'datetime2', @thedate AS 'date';
परिणाम:
+---------------------+------------+ | datetime2 | date | |---------------------+------------| | 2025-05-21 10:15:30 | 2025-05-21 | +---------------------+------------+
उदाहरण 2 - CAST() का उपयोग करके स्पष्ट रूपांतरण
यहां स्पष्ट रूपांतरण का एक उदाहरण दिया गया है। इस मामले में, मैं CAST()
. का उपयोग करता हूं सीधे SELECT
. के अंदर काम करता है datetime2 . के बीच स्पष्ट रूप से कनवर्ट करने के लिए कथन और तारीख .
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CAST(@thedatetime2 AS date) AS 'date';
परिणाम:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+
उदाहरण 3 - CONVERT() का उपयोग करके स्पष्ट रूपांतरण
यहां CONVERT()
. का उपयोग करके स्पष्ट रूपांतरण का एक उदाहरण दिया गया है CAST()
के बजाय फ़ंक्शन करें .
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CONVERT(date, @thedatetime2) AS 'date';
परिणाम:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+