SQL सर्वर में, आप उपयोग कर सकते हैं CONVERT() दिनांक मान को एक दिनांक डेटा प्रकार से दूसरे (या उस मामले के लिए किसी अन्य डेटा प्रकार के बीच) में कनवर्ट करने के लिए कार्य करता है। हालांकि, डेटा प्रकारों के बीच कनवर्ट करने के लिए टी-एसक्यूएल टूलबॉक्स में यही एकमात्र कार्य नहीं है।
CAST() फ़ंक्शन एएनएसआई एसक्यूएल मानक का हिस्सा है, और यह ज्यादातर चीजें करता है CONVERT() करता है। तो कई मामलों में, आपके पास विकल्प होता है कि आप इनमें से किस फ़ंक्शन का उपयोग करना पसंद करते हैं।
कई डेटाबेस पेशेवर पसंद करते हैं CAST() इस तथ्य के कारण कि यह एएनएसआई एसक्यूएल मानक का हिस्सा है, हालांकि, अन्य लोग CONVERT() पसंद करते हैं टी-एसक्यूएल के कार्यान्वयन द्वारा प्रदान की जाने वाली अतिरिक्त कार्यक्षमता के कारण (जैसे दिनांक शैली प्रदान करने में सक्षम होना)।
किसी भी स्थिति में, यह लेख CAST() . का उपयोग करके विभिन्न दिनांक स्वरूपों के बीच कनवर्ट करने के उदाहरण प्रदान करता है ।
सिंटैक्स
वाक्य रचना इस प्रकार है:
CAST ( expression AS data_type [ ( length ) ] )
इन तर्कों को इस प्रकार परिभाषित किया गया है:
expression- कोई मान्य अभिव्यक्ति।
data_type- लक्ष्य डेटा प्रकार। इसमें शामिल है xml , बिगिंट , और sql_variant . उपनाम डेटा प्रकारों का उपयोग नहीं किया जा सकता है।
length- एक वैकल्पिक पूर्णांक जो लक्ष्य डेटा प्रकार की लंबाई निर्दिष्ट करता है। डिफ़ॉल्ट मान
30है ।
उदाहरण 1 - SYSDATETIME() को तिथि के अनुसार कास्ट करें
इस उदाहरण में, हम SYSDATETIME() . के साथ वर्तमान दिनांक/समय उत्पन्न करते हैं कार्य करें और वापसी मान को तारीख . के रूप में डालें डेटा प्रकार।
ध्यान दें कि SYSDATETIME() एक datetime2(7) . के रूप में अपना मान उत्पन्न करता है डेटा प्रकार, इसलिए हम इसे उस डेटा प्रकार से दूसरे डेटा प्रकार में परिवर्तित कर रहे हैं।
SELECT
SYSDATETIME() AS Original,
CAST(SYSDATETIME() AS date) AS Converted; परिणाम:
+-----------------------------+-------------+ | Original | Converted | |-----------------------------+-------------| | 2018-06-07 00:15:32.9265884 | 2018-06-07 | +-----------------------------+-------------+
उदाहरण 2 - SYSDATETIME() को छोटे डेटाटाइम के रूप में कास्ट करें
इस उदाहरण में, हमने तारीख को स्मॉलडेटटाइम . के रूप में कास्ट किया है डेटा प्रकार।
SELECT
SYSDATETIME() AS Original,
CAST(SYSDATETIME() AS smalldatetime) AS Converted; परिणाम:
+-----------------------------+---------------------+ | Original | Converted | |-----------------------------+---------------------| | 2018-06-07 00:16:05.5142017 | 2018-06-07 00:16:00 | +-----------------------------+---------------------+
उदाहरण 3 - SYSDATETIME() को datetimeoffset के रूप में कास्ट करें
इस उदाहरण में, हमने दिनांक को डेटाटाइमऑफ़सेट . के रूप में डाला है डेटा प्रकार।
SELECT
SYSDATETIME() AS Original,
CAST(SYSDATETIME() AS datetimeoffset) AS Converted; परिणाम:
+-----------------------------+------------------------------------+ | Original | Converted | |-----------------------------+------------------------------------| | 2018-06-07 10:19:23.9457462 | 2018-06-07 10:19:23.9457462 +00:00 | +-----------------------------+------------------------------------+
उदाहरण 4 - SYSDATETIME() समय के अनुसार कास्ट करें
आप मूल्य के दिनांक घटक को प्रदर्शित करने तक सीमित नहीं हैं। आप इसे एक समय . के रूप में भी कास्ट कर सकते हैं डेटा प्रकार, ताकि केवल समय घटक लौटाया जा सके। इस तरह:
SELECT
SYSDATETIME() AS Original,
CAST(SYSDATETIME() AS time) AS Converted; परिणाम:
+-----------------------------+------------------+ | Original | Converted | |-----------------------------+------------------| | 2018-06-07 00:20:21.5829364 | 00:20:21.5829364 | +-----------------------------+------------------+
उदाहरण 5 - SYSDATETIMEOFFSET() को तिथि के अनुसार कास्ट करें
मूल दिनांक/समय मान जेनरेट करने के लिए किसी भिन्न फ़ंक्शन का उपयोग करके यहां एक उदाहरण दिया गया है:
SELECT
SYSDATETIMEOFFSET() AS Original,
CAST(SYSDATETIMEOFFSET() AS date) AS Converted; परिणाम:
+------------------------------------+----------------------+ | Original | Converted | |------------------------------------+----------------------| | 2018-06-07 10:21:16.3617030 +10:00 | 2018-06-07 | +------------------------------------+----------------------+
उदाहरण 6 - डेटाबेस क्वेरी से कनवर्ट करना
यहां WideWorldImporters के किसी स्तंभ से प्राप्त दिनांक को परिवर्तित करने का एक उदाहरण दिया गया है नमूना डेटाबेस:
USE WideWorldImporters;
SELECT DISTINCT TOP 10
LastEditedWhen,
CAST(LastEditedWhen AS date) AS 'Converted'
FROM Sales.CustomerTransactions; परिणाम:
+-----------------------------+-------------+ | LastEditedWhen | Converted | |-----------------------------+-------------| | 2013-01-02 11:30:00.0000000 | 2013-01-02 | | 2013-01-03 11:30:00.0000000 | 2013-01-03 | | 2013-01-04 11:30:00.0000000 | 2013-01-04 | | 2013-01-05 11:30:00.0000000 | 2013-01-05 | | 2013-01-06 11:30:00.0000000 | 2013-01-06 | | 2013-01-08 11:30:00.0000000 | 2013-01-08 | | 2013-01-09 11:30:00.0000000 | 2013-01-09 | | 2013-01-10 11:30:00.0000000 | 2013-01-10 | | 2013-01-11 11:30:00.0000000 | 2013-01-11 | | 2013-01-12 11:30:00.0000000 | 2013-01-12 | +-----------------------------+-------------+
मैंने एक पोस्ट भी लिखा है जो दिखाता है कि CONVERT() . का उपयोग करके दिनांक स्वरूपों के बीच कैसे परिवर्तित किया जाए ऊपर के समान उदाहरणों का उपयोग करके कार्य करें।