कभी-कभी डेटाबेस और अन्य प्रोग्रामिंग वातावरण के साथ काम करते समय, आपको दिनांक मान मिलता है लेकिन यह गलत प्रारूप/डेटा प्रकार में होता है। उदाहरण के लिए, यदि कोई दिनांक इनबिल्ट दिनांक फ़ंक्शन के साथ जेनरेट किया गया है, तो इसमें दिनांक और समय दोनों शामिल हो सकते हैं, ठीक अंतिम नैनोसेकंड तक। और आप केवल दिन, महीने और वर्ष चाहते हैं, ऐसा कहें:2018-01-01।
यदि ऐसा तब होता है जब आप SQL सर्वर का उपयोग कर रहे होते हैं, तो आप CONVERT()
. का उपयोग कर सकते हैं इसे दूसरे डेटा प्रकार में बदलने के लिए कार्य करता है। जब आप ऐसा करते हैं, तो डेटा प्रकार उस प्रारूप को निर्धारित करेगा जैसा वह दिखाई देता है।
यह लेख CONVERT()
. का उपयोग करने के उदाहरण प्रदान करता है दिनांक मान को दूसरे (दिनांक) डेटा प्रकार में बदलने के लिए SQL सर्वर में कार्य करता है।
सिंटैक्स
सबसे पहले, यहां बताया गया है कि आधिकारिक सिंटैक्स कैसा होता है:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
इन तर्कों को इस प्रकार परिभाषित किया गया है:
expression
- कोई मान्य अभिव्यक्ति।
data_type
- लक्ष्य डेटा प्रकार। इसमें शामिल है xml , बिगिंट , और sql_variant . उपनाम डेटा प्रकारों का उपयोग नहीं किया जा सकता है।
length
- एक वैकल्पिक पूर्णांक जो लक्ष्य डेटा प्रकार की लंबाई निर्दिष्ट करता है। डिफ़ॉल्ट मान
30
है । style
- एक पूर्णांक व्यंजक जो निर्दिष्ट करता है कि कैसे
CONVERT()
फ़ंक्शन अभिव्यक्ति . का अनुवाद करेगा . NULL के स्टाइल मान के लिए, NULL लौटाया जाता है। data_type सीमा निर्धारित करता है।
उदाहरण 1 - SYSDATETIME() से आज तक डेटा प्रकार में कनवर्ट करें
इस उदाहरण में, हम SYSDATETIME()
. के साथ वर्तमान दिनांक/समय उत्पन्न करते हैं कार्य करें और उसे तारीख . में बदलें डेटा प्रकार।
ध्यान दें कि SYSDATETIME()
एक datetime2(7) . के रूप में अपना मान उत्पन्न करता है डेटा प्रकार, इसलिए हम इसे उस डेटा प्रकार से दूसरे डेटा प्रकार में परिवर्तित कर रहे हैं।
SELECT SYSDATETIME() AS Original, CONVERT(date, SYSDATETIME()) AS Converted;
परिणाम:
+-----------------------------+-------------+ | Original | Converted | |-----------------------------+-------------| | 2018-06-06 22:53:47.2318751 | 2018-06-06 | +-----------------------------+-------------+
उदाहरण 2 - SYSDATETIME() से छोटे डेटा प्रकार में कनवर्ट करें
इस उदाहरण में, हम दिनांक को छोटे दिनांक समय . में रूपांतरित करते हैं डेटा प्रकार।
SELECT SYSDATETIME() AS Original, CONVERT(smalldatetime, SYSDATETIME()) AS Converted;
परिणाम:
+-----------------------------+---------------------+ | Original | Converted | |-----------------------------+---------------------| | 2018-06-06 22:56:51.6873250 | 2018-06-06 22:57:00 | +-----------------------------+---------------------+
उदाहरण 3 - SYSDATETIME() से डेटाटाइम ऑफ़सेट डेटा प्रकार में कनवर्ट करें
इस उदाहरण में, हम दिनांक को डेटाटाइमऑफ़सेट . में रूपांतरित करते हैं डेटा प्रकार।
SELECT SYSDATETIME() AS Original, CONVERT(datetimeoffset, SYSDATETIME()) AS Converted;
परिणाम:
+-----------------------------+------------------------------------+ | Original | Converted | |-----------------------------+------------------------------------| | 2018-06-07 09:17:15.2410693 | 2018-06-07 09:17:15.2410693 +00:00 | +-----------------------------+------------------------------------+
उदाहरण 4 - SYSDATETIME() से समय डेटा प्रकार में कनवर्ट करें
आप मूल्य के दिनांक घटक को प्रदर्शित करने तक सीमित नहीं हैं। आप इसे समय . में भी बदल सकते हैं डेटा प्रकार, ताकि केवल समय घटक लौटाया जा सके। इस तरह:
SELECT SYSDATETIME() AS Original, CONVERT(time, SYSDATETIME()) AS Converted;
परिणाम:
+-----------------------------+------------------+ | Original | Converted | |-----------------------------+------------------| | 2018-06-06 23:01:41.7070775 | 23:01:41.7070775 | +-----------------------------+------------------+
उदाहरण 5 - SYSDATETIMEOFFSET() से कनवर्ट करें
पिछले उदाहरण सभी दिनांक/समय मान उत्पन्न करने के लिए एक ही इनबिल्ट फ़ंक्शन का उपयोग करते हैं, लेकिन निश्चित रूप से, इसे इस एक फ़ंक्शन द्वारा उत्पन्न करने की आवश्यकता नहीं है। यहां SYSDATETIMEOFFSET()
का उपयोग करके एक उदाहरण दिया गया है :
SELECT SYSDATETIMEOFFSET() AS Original, CONVERT(date, SYSDATETIMEOFFSET()) AS Converted;
परिणाम:
+------------------------------------+----------------------+ | Original | Converted | |------------------------------------+----------------------| | 2018-06-07 09:12:27.3660685 +10:00 | 2018-06-07 | +------------------------------------+----------------------+
उदाहरण 6 - डेटाबेस क्वेरी से कनवर्ट करें
वाइडवर्ल्ड इम्पोर्टर्स नमूना डेटाबेस में एक कॉलम से पुनर्प्राप्त की गई तारीख को परिवर्तित करने का एक उदाहरण यहां दिया गया है:
USE WideWorldImporters; SELECT DISTINCT TOP 10 LastEditedWhen, CONVERT(date, LastEditedWhen) 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()
. का भी उपयोग कर सकते हैं एक स्ट्रिंग से एक तिथि में कनवर्ट करने के लिए, साथ ही साथ किसी अन्य डेटा प्रकार में कनवर्ट करने के लिए आपको कनवर्ट करने की आवश्यकता हो सकती है।
मैंने एक पोस्ट भी लिखा है जो दिखाता है कि CAST()
. का उपयोग करके दिनांक स्वरूपों के बीच कैसे परिवर्तित किया जाए ऊपर के समान उदाहरणों का उपयोग करके कार्य करें।