SQL सर्वर में, TODATETIMEOFFSET()
फ़ंक्शन को विशेष रूप से एक डेटाटाइमऑफ़सेट . वापस करने के लिए डिज़ाइन किया गया था datetime2 . से मान मूल्य।
इस तथ्य को देखते हुए कि datetime2 डेटा प्रकार वास्तव में समय क्षेत्र ऑफ़सेट का समर्थन नहीं करता है, और डेटाटाइमऑफ़सेट ऑफ़सेट होना चाहिए, TODATETIMEOFFSET()
फ़ंक्शन आपको उपयोग करने के लिए एक समय क्षेत्र ऑफ़सेट निर्दिष्ट करने की अनुमति देता है।
यह आलेख प्रदर्शित करने के लिए कुछ उदाहरण प्रदान करता है।
मूल उपयोग
यहां TODATETIMEOFFSET()
. के सामान्य उपयोग का एक उदाहरण दिया गया है समारोह।
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, '+07:00') AS [datetimeoffset];
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +07:00
इस मामले में मैं मूल datetime2 . लौटाता हूं मूल्य और परिणामी डेटाटाइमऑफ़सेट मूल्य।
परिणाम यह है कि मूल दिनांक/समय वही है, निर्दिष्ट समय क्षेत्र ऑफ़सेट को छोड़कर।
सीमा +14 से -14 (घंटों में) है। व्यंजक की व्याख्या स्थानीय समय में निर्दिष्ट समय क्षेत्र के लिए की जाती है।
मिनटों में समय क्षेत्र ऑफ़सेट निर्दिष्ट करें
आप वैकल्पिक रूप से समय क्षेत्र ऑफ़सेट मिनटों में निर्दिष्ट कर सकते हैं। यहाँ एक उदाहरण है।
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, +120) AS [datetimeoffset];
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +02:00
इस मामले में मैंने +120 मिनट निर्दिष्ट किए, जो दो घंटे के समान है। तो परिणाम +02:00 (अर्थात् प्लस दो घंटे) का समय क्षेत्र ऑफसेट था।
यह भी ध्यान दें कि जब आप मिनटों में समय क्षेत्र ऑफ़सेट प्रदान करते हैं, तो आप इसे एक पूर्णांक मान के रूप में प्रदान करते हैं। दूसरी ओर, जब आप इसे घंटों में प्रदान करते हैं, तो आपको इसे एक स्ट्रिंग के रूप में निर्दिष्ट करने की आवश्यकता होती है।
इसे कैसे करें, उदाहरण के लिए किसी दिनांक को किसी अन्य समय क्षेत्र में कनवर्ट करें देखें।