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

SQL सर्वर (T-SQL उदाहरण) में 'datetimeoffset' को 'तिथि' में बदलें

यदि आपके पास डेटाटाइमऑफ़सेट . है मान, लेकिन आपको समय और समय क्षेत्र ऑफ़सेट भाग की आवश्यकता नहीं है, इसे तारीख . में परिवर्तित करना आपको बहुत अधिक संग्रहण स्थान बचाएगा (मूल्य से अनावश्यक विवरण हटाते समय)। इस लेख में डेटाटाइमऑफ़सेट . को रूपांतरित करने के उदाहरण हैं तारीख . के लिए मान SQL सर्वर में मान।

डेटाटाइमऑफ़सेट डेटा प्रकार में समय क्षेत्र ऑफ़सेट के साथ दिनांक और समय शामिल होता है। इसमें 0 और 7 के बीच एक भिन्नात्मक सेकंड का भाग भी होता है (यह इस पर निर्भर करता है कि इसे कितने भिन्नात्मक सेकंड दिए गए हैं)। यह datetimeoffset(n) . का उपयोग करके किया जाता है वाक्य - विन्यास। यदि आप इसे निर्दिष्ट नहीं करते हैं, तो यह 7 (डिफ़ॉल्ट) का उपयोग करेगा। इस डेटा प्रकार का भंडारण आकार या तो 8, 9, या 10 बाइट्स (सटीकता को स्टोर करने के लिए प्लस 1 बाइट) है, जो उपयोग की जा रही सटीकता पर निर्भर करता है। इसकी सटीकता 100 नैनोसेकंड है।

तारीख दूसरी ओर डेटा प्रकार, केवल दिनांक शामिल है। इसमें समय शामिल नहीं है, और इसकी सटीकता 1 दिन है। यह भंडारण के लिए 3 बाइट्स का उपयोग करता है।

जब आप किसी डेटाटाइमऑफ़सेट . को रूपांतरित करते हैं तारीख . के लिए मान डेटा प्रकार, आप समय भाग (समय क्षेत्र ऑफ़सेट सहित) खो देते हैं। हालाँकि, आप भंडारण आकार को एक निश्चित 3 बाइट्स तक कम कर देते हैं। बेशक, आप यह रूपांतरण केवल तभी करेंगे जब आपको समय भाग और समय क्षेत्र ऑफ़सेट की आवश्यकता नहीं होगी।

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

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

DECLARE 
  @thedatetimeoffset datetimeoffset, 
  @thedate date;
SET @thedatetimeoffset = '2025-05-21 10:15:30.1234567 +10:30';
SET @thedate = @thedatetimeoffset;
SELECT 
  @thedatetimeoffset AS 'datetimeoffset',
  @thedate AS 'date';

परिणाम:

+------------------------------------+------------+
| datetimeoffset                     | date       |
|------------------------------------+------------|
| 2025-05-21 10:15:30.1234567 +10:30 | 2025-05-21 |
+------------------------------------+------------+

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

यहां हम देख सकते हैं कि तारीख मान में केवल दिनांक (समय घटक के बिना) शामिल है। समय घटक, इसके समय क्षेत्र ऑफ़सेट सहित, को मान से हटा दिया गया है।

इस उदाहरण में, डेटाटाइमऑफ़सेट value डिफ़ॉल्ट परिशुद्धता का उपयोग करता है (जिसके परिणामस्वरूप 7 दशमलव स्थान होते हैं)। यह 10 बाइट्स का उपयोग करके डेटा प्रकार में परिणाम देता है (वास्तव में, 11 बाइट्स यदि आप अतिरिक्त बाइट की गणना करते हैं जो परिशुद्धता को संग्रहीत करता है)। तारीख value सिर्फ 3 बाइट्स का उपयोग करता है।

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

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

DECLARE @thedatetimeoffset datetimeoffset;
SET @thedatetimeoffset = '2025-05-21 10:15:30.1234567 +10:30';
SELECT 
  @thedatetimeoffset AS 'datetimeoffset',
  CAST(@thedatetimeoffset AS date) AS 'date'; 

परिणाम:

+------------------------------------+------------+
| datetimeoffset                     | date       |
|------------------------------------+------------|
| 2025-05-21 10:15:30.1234567 +10:30 | 2025-05-21 |
+------------------------------------+------------+

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

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

DECLARE @thedatetimeoffset datetimeoffset;
SET @thedatetimeoffset = '2025-05-21 10:15:30.1234567 +10:30';
SELECT 
  @thedatetimeoffset AS 'datetimeoffset',
  CONVERT(date, @thedatetimeoffset) AS 'date';

परिणाम:

+------------------------------------+------------+
| datetimeoffset                     | date       |
|------------------------------------+------------|
| 2025-05-21 10:15:30.1234567 +10:30 | 2025-05-21 |
+------------------------------------+------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शीर्ष 50 SQL सर्वर साक्षात्कार प्रश्न जो आपको 2022 में तैयार करने चाहिए

  2. सी # में डेटाबेस में एकाधिक पैरामीटरयुक्त चर जोड़ना

  3. क्या कोई विदेशी कुंजी NULL और/या डुप्लिकेट हो सकती है?

  4. SQL सर्वर:तालिका मेटा-डेटा निकालें (विवरण, फ़ील्ड और उनके डेटा प्रकार)

  5. SQL सर्वर DIFFERENCE () फ़ंक्शन कैसे काम करता है