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

मारियाडीबी में CONVERT_TZ () कैसे काम करता है

मारियाडीबी में, CONVERT_TZ() एक अंतर्निहित दिनांक और समय फ़ंक्शन है जो डेटाटाइम मान को एक समय क्षेत्र से दूसरे समय क्षेत्र में परिवर्तित करता है।

जब आप फ़ंक्शन को कॉल करते हैं, तो आप तीन तर्क पास करते हैं:समय, समय क्षेत्र से . कनवर्ट करने के लिए , और समय क्षेत्र से . में कनवर्ट करने के लिए ।

सिंटैक्स

वाक्य रचना इस प्रकार है:

CONVERT_TZ(dt,from_tz,to_tz)

जहां dt डेटाटाइम एक्सप्रेशन है, from_tz से convert में कनवर्ट करने का समय क्षेत्र है , और to_tz को . में बदलने का समय क्षेत्र है ।

उदाहरण

यहां एक उदाहरण दिया गया है:

SELECT CONVERT_TZ('2021-05-10 01:00:00', '+00:00', '+10:00');

परिणाम:

+-------------------------------------------------------+
| CONVERT_TZ('2021-05-10 01:00:00', '+00:00', '+10:00') |
+-------------------------------------------------------+
| 2021-05-10 11:00:00                                   |
+-------------------------------------------------------+

यहां, मूल समय क्षेत्र +00:00 है, और हमने इसे +10:00 में बदल दिया है।

यदि हम किसी भिन्न प्रारंभ समय क्षेत्र का उपयोग करते हैं तो यहां क्या होता है:

SELECT CONVERT_TZ('2021-05-10 01:00:00', '+03:00', '+10:00');

परिणाम:

+-------------------------------------------------------+
| CONVERT_TZ('2021-05-10 01:00:00', '+03:00', '+10:00') |
+-------------------------------------------------------+
| 2021-05-10 08:00:00                                   |
+-------------------------------------------------------+

नामांकित समय क्षेत्र

नामित समय क्षेत्रों का उपयोग किया जा सकता है, लेकिन इसके लिए यह आवश्यक है कि विभिन्न समय क्षेत्र तालिकाओं को लोड किया गया हो।

जब टाइम ज़ोन टेबल नहीं होते हैं तो यहां क्या होता है आबादी:

SELECT 
CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham');

परिणाम:

+-------------------------------------------------------------+
| CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham') |
+-------------------------------------------------------------+
| NULL                                                        |
+-------------------------------------------------------------+

परिणाम null है , क्योंकि समय क्षेत्र तालिकाओं में कोई समय क्षेत्र डेटा नहीं है।

यहाँ फिर से वही प्रश्न है, लेकिन इस बार समय क्षेत्र तालिकाओं में डेटा के साथ:

SELECT 
CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham');

परिणाम:

+-------------------------------------------------------------+
| CONVERT_TZ('2021-05-10 01:00:00', 'GMT', 'Pacific/Chatham') |
+-------------------------------------------------------------+
| 2021-05-10 13:45:00                                         |
+-------------------------------------------------------------+

सीमा से बाहर डेटाटाइम मान

यदि मान समर्थित TIMESTAMP . से बाहर है तो कोई रूपांतरण नहीं होगा रेंज ('1970-01-01 00:00:01' करने के लिए '2038-01-19 05:14:07' UTC) जब from_tz यूटीसी के लिए।

उदाहरण:

SELECT CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+10:00');

परिणाम:

+-------------------------------------------------------+
| CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+10:00') |
+-------------------------------------------------------+
| 2040-05-10 01:00:00                                   |
+-------------------------------------------------------+

अमान्य तर्क

यदि कोई तर्क अमान्य है, CONVERT_TZ() रिटर्न null

उदाहरण:

SELECT CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+90:00');

परिणाम:

+-------------------------------------------------------+
| CONVERT_TZ('2040-05-10 01:00:00', '+00:00', '+90:00') |
+-------------------------------------------------------+
| NULL                                                  |
+-------------------------------------------------------+

इस मामले में, मैंने डेटाटाइम एक्सप्रेशन को अमान्य समय क्षेत्र में बदलने की कोशिश की (+90:00 ), और इसलिए null लौटा दिया गया।

अशक्त तर्क

यदि कोई तर्क null है , परिणाम null . है :

SELECT 
    CONVERT_TZ(null, '+00:00', '+90:00') AS "1",
    CONVERT_TZ('2021-05-10 01:00:00', null, '+90:00') AS "2",
    CONVERT_TZ('2021-05-10 01:00:00', '+00:00', null) AS "3";

परिणाम:

+------+------+------+
| 1    | 2    | 3    |
+------+------+------+
| NULL | NULL | NULL |
+------+------+------+

अनुपलब्ध तर्क

कॉलिंग CONVERT_TZ() तर्कों की गलत संख्या के साथ, या बिना कोई तर्क पारित किए त्रुटि उत्पन्न होती है:

SELECT CONVERT_TZ();

परिणाम:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'CONVERT_TZ'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में एक तिथि से महीने का नाम प्राप्त करने के 3 तरीके

  2. MariaDB में समय मान से घंटे, मिनट और सेकंड को अलग करने के 4 तरीके

  3. मारियाडीबी में डिग्री () कैसे काम करती है

  4. क्लाउड में अपने मारियाडीबी बैकअप को स्टोर करने के लिए टिप्स

  5. मारियाडीबी में मोडुलो को वापस करने के 3 तरीके