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

मैं MySQL का समय क्षेत्र कैसे निर्धारित करूं?

मुझे लगा कि यह उपयोगी हो सकता है:

ऐसे तीन स्थान हैं जहां MySQL में टाइमज़ोन सेट किया जा सकता है:

[mysqld] अनुभाग में "my.cnf" फ़ाइल में

default-time-zone='+00:00'

@@global.time_zone चर

यह देखने के लिए कि वे किस मान पर सेट हैं:

SELECT @@global.time_zone;

इसके लिए मान सेट करने के लिए इनमें से किसी एक का उपयोग करें:

SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';

('यूरोप/हेलसिंकी' जैसे नामित टाइमज़ोन का उपयोग करने का अर्थ है कि आपके पास एक टाइमज़ोन तालिका ठीक से भरी होनी चाहिए।)

ध्यान रखें कि +02:00 एक ऑफसेट है। Europe/Berlin एक समय क्षेत्र है (जिसमें दो ऑफसेट हैं) और CEST एक घड़ी का समय है जो एक विशिष्ट ऑफसेट से मेल खाता है।

@@session.time_zone चर

SELECT @@session.time_zone;

इसे सेट करने के लिए किसी एक का उपयोग करें:

SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";

दोनों सिस्टम वापस कर सकते हैं जिसका अर्थ है कि वे my.cnf में निर्धारित समय क्षेत्र का उपयोग करते हैं।

टाइमज़ोन नामों के काम करने के लिए, आपको अपनी टाइमज़ोन सूचना तालिकाएँ सेट करनी होंगी जिन्हें पॉप्युलेट करने की आवश्यकता है:http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . मैं उन तालिकाओं को इस उत्तर में पॉप्युलेट करने का भी उल्लेख करता हूं। ।

वर्तमान टाइमज़ोन ऑफ़सेट को TIME के रूप में प्राप्त करने के लिए

SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

यदि आपका समय क्षेत्र +2:00 है, तो यह 02:00:00 वापस आ जाएगा।

वर्तमान UNIX टाइमस्टैम्प प्राप्त करने के लिए:

SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());

टाइमस्टैम्प कॉलम को UNIX टाइमस्टैम्प के रूप में प्राप्त करने के लिए

SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`

UNIX टाइमस्टैम्प के रूप में UTC डेटाटाइम कॉलम प्राप्त करने के लिए

SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`

नोट:समय क्षेत्र बदलने से संग्रहीत डेटाटाइम या टाइमस्टैम्प नहीं बदलेगा , लेकिन यह मौजूदा टाइमस्टैम्प कॉलम के लिए एक अलग डेटाटाइम दिखाएगा क्योंकि वे आंतरिक रूप से यूटीसी टाइमस्टैम्प के रूप में संग्रहीत हैं और बाहरी रूप से वर्तमान MySQL टाइमज़ोन में प्रदर्शित होते हैं।

मैंने यहां एक चीटशीट बनाई है:>क्या MySQL का समय क्षेत्र UTC पर सेट होना चाहिए?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL स्ट्रिंग फ़ंक्शंस (पूरी सूची)

  2. mysql/अस्पष्ट खोज के लिए लेवेनशेटिन दूरी का कार्यान्वयन?

  3. सभी दूरस्थ कनेक्शन की अनुमति दें, MySQL

  4. cPanel में MySQL डेटाबेस कैसे बनाएं

  5. अपवाद:पहले से ही इस कनेक्शन से जुड़ा एक खुला डेटा रीडर है जिसे पहले बंद किया जाना चाहिए