SQL सर्वर में, आप TODATETIMEOFFSET()
. का उपयोग कर सकते हैं एक डेटाटाइमऑफ़सेट . वापस करने के लिए कार्य करता है मान जिसका अनुवाद datetime2 . से किया गया है अभिव्यक्ति। यह दो तर्क स्वीकार करता है; दिनांक और ऑफ़सेट जिसे आप उस तिथि पर लागू करना चाहते हैं।
नीचे उपयोग के उदाहरण दिए गए हैं।
सिंटैक्स
TODATETIMEOFFSET()
. का सिंटैक्स इस तरह जाता है:
TODATETIMEOFFSET ( expression , time_zone )
जहां expression
एक अभिव्यक्ति है जो एक datetime2 . का समाधान करती है मान, और time_zone
वह समय क्षेत्र है जिसे आप उस अभिव्यक्ति (तारीख) पर लागू करना चाहते हैं।
आप समय क्षेत्र मिनटों या घंटों में प्रदान कर सकते हैं। यदि आप इसे मिनटों में प्रदान करते हैं, तो एक पूर्णांक का उपयोग करें (उदा. -120
), अन्यथा इसे घंटों में प्रदान करने के लिए, एक स्ट्रिंग का उपयोग करें (उदा. '+04.00'
) समय क्षेत्र की सीमा +14 से -14 (घंटे) है।
साथ ही, आपके द्वारा प्रदान की जाने वाली तिथि को निर्दिष्ट समय क्षेत्र के लिए स्थानीय समय में व्याख्यायित किया जाता है।
उदाहरण 1
यहां उपयोग का एक बुनियादी उदाहरण दिया गया है:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '+08:00' ) AS Result;
परिणाम:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 +08:00
उदाहरण 2 - ऋणात्मक मान
यह पिछले उदाहरण जैसा ही है, सिवाय इसके कि मैं इसके बजाय ऋणात्मक मान का उपयोग करता हूं:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '-08:00' ) AS Result;
परिणाम:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -08:00
उदाहरण 3 - datetime2 चर का उपयोग करना
इस उदाहरण में, मैंने स्पष्ट रूप से datetime2 . के साथ एक वैरिएबल सेट किया है मान, फिर लागू करें TODATETIMEOFFSET()
उस मान से, और मानों की तुलना करें:
DECLARE @date datetime2 = '2112-01-01 00:00:00.0000000'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
परिणाम:
Original Date +08:00 --------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 2112-01-01 00:00:00.0000000 +08:00
जैसा कि हम इस उदाहरण (और पिछले वाले) से देख सकते हैं, मूल दिनांक मान में कोई डेटाटाइम नहीं है ऑफ़सेट जानकारी (क्योंकि यह एक डेटाटाइम2 . है value), लेकिन एक बार जब हम इसे TODATETIMEOFFSET()
. के माध्यम से चलाते हैं फ़ंक्शन, हम एक डेटाटाइमऑफ़सेट . के साथ समाप्त होते हैं डेटा प्रकार।
उदाहरण 4 - डेटाटाइमऑफ़सेट वैरिएबल का उपयोग करना
यह पिछले उदाहरण के समान है, सिवाय इसके कि मूल तिथि को डेटाटाइमऑफ़सेट के रूप में सेट किया गया है मूल्य:
DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
परिणाम:
Original Date +08:00 ---------------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 +04:00 2112-01-01 00:00:00.0000000 +08:00
उदाहरण 5 - वर्तमान दिनांक/समय का उपयोग करना
इस उदाहरण में, मैं SYSDATETIMEOFFSET()
में पास होता हूं दिनांक अभिव्यक्ति के रूप में कार्य करें। यह फ़ंक्शन उस कंप्यूटर की वर्तमान दिनांक/समय उत्पन्न करता है जो SQL सर्वर आवृत्ति चला रहा है:
SELECT SYSDATETIMEOFFSET() AS 'Current Date', TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
परिणाम:
Current Date +08:00 ---------------------------------- ---------------------------------- 2018-06-06 08:50:57.8382284 +10:00 2018-06-06 08:50:57.8382284 +08:00
उदाहरण 6 - समय क्षेत्र ऑफसेट को एक पूर्णांक के रूप में प्रदान करना
जैसा कि उल्लेख किया गया है, आप समय क्षेत्र ऑफ़सेट को एक स्ट्रिंग के बजाय एक पूर्णांक के रूप में भी प्रदान कर सकते हैं:
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', -180 ) AS Result;
परिणाम:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -03:00