मैंने सोचा कि यह उपयोगी हो सकता है:
तीन स्थान हैं जहाँ 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 । मैं इस जवाब में उन तालिकाओं को कैसे पॉप्युलेट करता हूं, इसका भी उल्लेख करता हूं ।
के रूप में वर्तमान timezone ऑफसेट प्राप्त करने के लिए 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`
यूनिक्स टाइमस्टैम्प के रूप में एक यूटीसी डेटाइम कॉलम प्राप्त करने के लिए
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
नोट: टाइमज़ोन बदलने से संग्रहीत डेटाटाइम या टाइमस्टैम्प नहीं बदलेगा , लेकिन यह मौजूदा टाइमस्टैम्प कॉलम के लिए एक अलग डेटाटाइम दिखाएगा क्योंकि वे आंतरिक रूप से यूटीसी टाइमस्टैम्प के रूप में संग्रहीत होते हैं और बाहरी रूप से वर्तमान MySQL टाइमज़ोन में प्रदर्शित होते हैं।
मैंने यहां एक चेसशीट बनाई: क्या MySQL को UTC को अपना टाइमज़ोन सेट करना चाहिए?
ntp
- और देखें कि आपके लिए क्या सही है!"