SQL सर्वर में, SWITCHOFFSET() फ़ंक्शन का उपयोग डेटाटाइमऑफ़सेट . वापस करने के लिए किया जा सकता है मान जो संग्रहीत समय क्षेत्र ऑफ़सेट से एक निर्दिष्ट नए समय क्षेत्र ऑफ़सेट में बदल दिया जाता है।
यह फ़ंक्शन कैसे काम करता है, इसके उदाहरण नीचे दिए गए हैं।
सिंटैक्स
सबसे पहले, यहां बताया गया है कि सिंटैक्स कैसे जाता है:
SWITCHOFFSET ( DATETIMEOFFSET, time_zone )
जहां DATETIMEOFFSET एक अभिव्यक्ति है जिसे datetimeoffset(n) . में हल किया जा सकता है मान, और time_zone प्रारूप में एक वर्ण स्ट्रिंग है [+|-]TZH:TZM या एक हस्ताक्षरित पूर्णांक (मिनटों का) जो समय क्षेत्र ऑफ़सेट का प्रतिनिधित्व करता है, और इसे डेलाइट-सेविंग जागरूक और समायोजित माना जाता है।
परिणाम एक डेटाटाइमऑफ़सेट . के रूप में लौटाया जाता है DATETIMEOFFSET . की भिन्नात्मक सटीकता के साथ तर्क।
उदाहरण 1
यहां उपयोग का एक बुनियादी उदाहरण दिया गया है:
SELECT SWITCHOFFSET( '2112-01-01', '+08:00' ) AS Result;
परिणाम:
Result ---------------------------------- 2112-01-01 08:00:00.0000000 +08:00
उदाहरण 2
यह उदाहरण ऋणात्मक मान का उपयोग करता है:
SELECT SWITCHOFFSET( '2112-01-01', '-08:00' ) AS Result;
परिणाम:
Result ---------------------------------- 2111-12-31 16:00:00.0000000 -08:00
उदाहरण 4
इस उदाहरण में हम एक चर घोषित करते हैं और डेटाटाइमऑफ़सेट . का उपयोग करके इसे एक तिथि निर्दिष्ट करते हैं डेटा प्रकार। फिर हम SWITCHOFFSET() . लागू करते हैं उस तारीख तक और उसकी तुलना मूल तारीख से करें।
DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00';
SELECT
@date AS 'Original Date',
SWITCHOFFSET( @date, '+08:00' ) AS '+08:00';
परिणाम:
Original Date +08:00 ---------------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 +04:00 2112-01-01 04:00:00.0000000 +08:00
उदाहरण 5
यहां हम पिछले उदाहरण की तरह ही काम करते हैं, लेकिन हम SYSDATETIMEOFFSET() का उपयोग करते हैं वर्तमान दिनांक/समय और ऑफ़सेट उत्पन्न करने के लिए कार्य करता है।
SELECT
SYSDATETIMEOFFSET() AS 'Current Date',
SWITCHOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
परिणाम:
Current Date +08:00 ---------------------------------- ---------------------------------- 2018-06-05 17:05:36.9415309 +10:00 2018-06-05 15:05:36.9415309 +08:00
उदाहरण 6
यह उदाहरण पिछले वाले जैसा ही है, सिवाय इसके कि हम एक नकारात्मक मान जोड़ते हैं।
SELECT
SYSDATETIMEOFFSET() AS 'Current Date',
SWITCHOFFSET( SYSDATETIMEOFFSET(), '-08:00' ) AS '-08:00';
परिणाम:
Current Date -08:00 ---------------------------------- ---------------------------------- 2018-06-05 17:12:07.1122856 +10:00 2018-06-04 23:12:07.1122856 -08:00
उदाहरण 7
आप समय क्षेत्र ऑफ़सेट को एक स्ट्रिंग के बजाय एक पूर्णांक के रूप में भी प्रदान कर सकते हैं:
SELECT SWITCHOFFSET( '2112-01-01', -180 ) AS Result;
परिणाम:
Result ---------------------------------- 2111-12-31 21:00:00.0000000 -03:00