उत्तर है:यह निर्भर करता है।
कुल मिलाकर आपके डेटाबेस में तीन . हैं समय क्षेत्र
- आपका सत्र समय क्षेत्र:
SESSIONTIMEZONE
इसे आप ALTER SESSION SET TIME_ZONE=...
. द्वारा बदल सकते हैं किसी भी समय। यह
-
CURRENT_DATE
-
LOCALTIMESTAMP
-
CURRENT_TIMESTAMP
यह लक्ष्य समय क्षेत्र भी है जब आप CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)
डिफ़ॉल्ट SESSIONTIMEZONE
पर्यावरण चर द्वारा सेट किया जा सकता है ORA_SDTZ
या (विंडोज़ पर) रजिस्ट्री प्रविष्टि द्वारा HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(32 बिट क्लाइंट के लिए), सम्मान। HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(64 बिट क्लाइंट के लिए)।
- डेटाबेस समय क्षेत्र:
DBTIMEZONE
वास्तव में यह दैनिक उपयोग में इतना महत्वपूर्ण नहीं है, यह केवल TIMESTAMP WITH LOCAL TIME ZONE
के लिए प्रासंगिक है। डेटा प्रकार कॉलम और भंडारण प्रारूप को परिभाषित करता है।
यह नहीं है SYSDATE
. का समय क्षेत्र या SYSTIMESTAMP
!!!
आप DBTIMEZONE
को नहीं बदल सकते हैं आपके डेटाबेस पर यदि डेटाबेस में TIMESTAMP WITH LOCAL TIME ZONE
वाली तालिका है कॉलम और कॉलम में डेटा होता है। अन्यथा इसे ALTER DATABASE SET TIME_ZONE='...';
से बदला जा सकता है . परिवर्तन तब तक प्रभावी नहीं होता जब तक डेटाबेस को शट डाउन और पुनरारंभ नहीं किया जाता है।
DBTIMEZONE
डेटाबेस बनाते समय सेट किया जाता है। यदि डेटाबेस निर्माण के दौरान कोई समय क्षेत्र प्रदान नहीं किया जाता है तो Oracle सर्वर के ऑपरेटिंग सिस्टम के समय क्षेत्र में डिफ़ॉल्ट हो जाता है।
- डेटाबेस सर्वर के ऑपरेटिंग सिस्टम का समय क्षेत्र:
यह समय क्षेत्र
. के परिणाम के लिए प्रासंगिक है-
SYSDATE
-
SYSTIMESTAMP
स्वाभाविक रूप से इस समय क्षेत्र को डेटाबेस स्तर पर नहीं बदला जा सकता है। यदि आपका देश डेलाइट सेविंग टाइम्स का उपयोग करता है, तो यह समय क्षेत्र साल में दो बार बदल सकता है। आप उससे SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual;
, उदाहरण के लिए।
इसलिए, यदि आपका डीबी सर्वर ओएस ठीक से सेटअप है, तो आपको अगले सप्ताह (कम से कम यूरोप के लिए) से गर्मियों का समय मिलना चाहिए