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

CONVERT () का उपयोग करके SQL सर्वर में एक दिनांक प्रारूप से दूसरे में कैसे परिवर्तित करें

कभी-कभी डेटाबेस और अन्य प्रोग्रामिंग वातावरण के साथ काम करते समय, आपको दिनांक मान मिलता है लेकिन यह गलत प्रारूप/डेटा प्रकार में होता है। उदाहरण के लिए, यदि कोई दिनांक इनबिल्ट दिनांक फ़ंक्शन के साथ जेनरेट किया गया है, तो इसमें दिनांक और समय दोनों शामिल हो सकते हैं, ठीक अंतिम नैनोसेकंड तक। और आप केवल दिन, महीने और वर्ष चाहते हैं, ऐसा कहें: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() . का उपयोग करके दिनांक स्वरूपों के बीच कैसे परिवर्तित किया जाए ऊपर के समान उदाहरणों का उपयोग करके कार्य करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SqlCommand के साथ एकाधिक परिणाम सेट कैसे वापस कर सकता हूं?

  2. SQL सर्वर में अग्रणी और अनुगामी वर्ण कैसे निकालें?

  3. एक्सएमएल पथ ('') के लिए:विशेष पात्रों से बचना

  4. प्रोग्राम के रूप में एसक्यूएल कोड जनरेट कर रहा है

  5. SQL सर्वर (T-SQL) में किसी दिनांक से माह निकालने के 3 तरीके