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

मारियाडीबी में नामित समय क्षेत्र कैसे सेट करें?

यदि आप मारियाडीबी में नामित समय क्षेत्रों का उपयोग करना चाहते हैं, तो आपको यह सुनिश्चित करना होगा कि उन्हें कॉन्फ़िगर किया गया है।

"नामित समय क्षेत्र" से मेरा मतलब है America/Los_Angeles जैसे स्ट्रिंग्स का उपयोग करने में सक्षम होना −08:00 . के बजाय या −07:00 समय क्षेत्र निर्दिष्ट करते समय। उदाहरण के लिए, CONVERT_TZ() . का उपयोग करते समय समारोह।

मारियाडीबी में नामित समय क्षेत्रों को कॉन्फ़िगर करने का तरीका यहां दिया गया है।

समय क्षेत्र सारणी

MariaDB के पास mysql . में निम्न समय क्षेत्र सारणी हैं डेटाबेस:

  • time_zone
  • time_zone_leap_second
  • time_zone_name
  • time_zone_transition
  • time_zone_transition_type

डिफ़ॉल्ट रूप से, ये तालिकाएं बनाई जाती हैं, लेकिन भरी नहीं जाती हैं।

नामित समय क्षेत्रों का उपयोग करने के लिए, आपको इन तालिकाओं को भरना होगा। ऐसा करने की विधि आपके सिस्टम पर निर्भर करेगी (अर्थात आपके सिस्टम में वास्तव में समय क्षेत्र की जानकारी है या नहीं)।

यूनिक्स जैसे सिस्टम

उपरोक्त टाइम ज़ोन टेबल डिफ़ॉल्ट रूप से खाली होने का कारण यह है कि यह आमतौर पर बेहतर होता है कि सिस्टम समय क्षेत्र को संभालता है, यदि संभव हो तो।

अधिकांश यूनिक्स जैसी प्रणालियाँ जैसे कि लिनक्स, मैक ओएस एक्स, फ्रीबीएसडी और सोलारिस में एक ज़ोनइन्फो डेटाबेस है। इस ज़ोनइन्फो डेटाबेस को मारियाडीबी में टाइम ज़ोन टेबल में mysql_tzinfo_to_sql के साथ लोड किया जा सकता है उपयोगिता।

यदि आपके सिस्टम में एक ज़ोनइन्फो डेटाबेस है, तो यह बेहतर होगा कि आप इस पद्धति का उपयोग टाइम ज़ोन तालिकाओं को पॉप्युलेट करने के लिए करें। अन्यथा आप अपने सिस्टम पर मारियाडीबी और अन्य अनुप्रयोगों के बीच डेटाटाइम हैंडलिंग में अंतर पैदा कर सकते हैं।

टाइम ज़ोन टेबल लोड करने के लिए, एक टर्मिनल विंडो खोलें और निम्नलिखित चलाएँ:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

root . के लिए पासवर्ड दर्ज करें उपयोगकर्ता। अगर आपको "पहुंच से वंचित" त्रुटि मिलती है, तो यह सुधार देखें।

इतना ही। समय क्षेत्र सारणी अब भरनी चाहिए।

मेरे मामले में मुझे एक चेतावनी मिली:

Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it.

इस चेतावनी को सुरक्षित रूप से अनदेखा किया जा सकता है।

यह चेतावनी शायद इस तथ्य के कारण है कि यूनिक्स जैसी प्रणालियों में लीप सेकंड शामिल नहीं हैं। अर्थात्, यूनिक्स जैसी प्रणालियों के पास 23:59:60 के रूप में लीप सेकेंड का प्रतिनिधित्व करने का कोई तरीका नहीं है। . इसके बजाय यह सिर्फ दो बार एक ही सेकंड का उपयोग करता है।

यह POSIX (पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस) मानक का पालन करता है, जिसके लिए आवश्यक है कि लीप सेकंड को रिपोर्ट किए गए समय से हटा दिया जाए।

Windows, HP-UX सिस्टम

कुछ सिस्टम, जैसे कि विंडोज और एचपी-यूएक्स में ज़ोनइन्फो डेटाबेस नहीं है, इसलिए यदि आप इन ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं तो आपको SQL स्क्रिप्ट के माध्यम से टाइम ज़ोन टेबल लोड करने की आवश्यकता होगी।

स्क्रिप्ट और स्थापना निर्देशों के लिए MySQL दस्तावेज़ देखें।

समय क्षेत्र सारणी देखें

एक बार टाइम ज़ोन टेबल पॉप्युलेट हो जाने के बाद, हम यह जांचने के लिए एक त्वरित क्वेरी चला सकते हैं कि वे वास्तव में पॉप्युलेट हैं।

उदाहरण:

SELECT * 
FROM mysql.time_zone_name
LIMIT 10;

परिणाम:

+--------------------+--------------+
| Name               | Time_zone_id |
+--------------------+--------------+
| Africa/Abidjan     |            1 |
| Africa/Accra       |            2 |
| Africa/Addis_Ababa |            3 |
| Africa/Algiers     |            4 |
| Africa/Asmara      |            5 |
| Africa/Asmera      |            6 |
| Africa/Bamako      |            7 |
| Africa/Bangui      |            8 |
| Africa/Banjul      |            9 |
| Africa/Bissau      |           10 |
+--------------------+--------------+

इस मामले में मैंने time_zone_name . से शीर्ष 10 परिणामों का चयन किया टेबल।

ये रही पूरी गिनती:

SELECT COUNT(*) 
FROM mysql.time_zone_name;

परिणाम:

+----------+
| COUNT(*) |
+----------+
|      594 |
+----------+

आप आवश्यकतानुसार अन्य तालिकाओं के माध्यम से चला सकते हैं।


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

  2. मारियाडीबी में सबडेट () कैसे काम करता है?

  3. मास्टर उच्च उपलब्धता प्रबंधक (एमएचए) दुर्घटनाग्रस्त हो गया है! अब मैं क्या करू?

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

  5. कैसे जोड़ें () मारियाडीबी में काम करता है