मुझे लगा कि यह उपयोगी हो सकता है:
ऐसे तीन स्थान हैं जहां 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 पर सेट होना चाहिए?