नहीं, एक MySQL उदाहरण के भीतर एक डेटाबेस के लिए टाइमज़ोन को बदलना संभव नहीं है।
आप सर्वर और ग्राहक time_zone
सेटिंग प्राप्त कर सकते हैं:
SELECT @@global.time_zone, @@session.time_zone;
तुम भी ग्राहक समय क्षेत्र, या पूरे MySQL उदाहरण के लिए समय क्षेत्र बदलने के कर सकते हैं।
लेकिन मौजूदा क्लाइंट कनेक्शन पर मौजूद निहितार्थ के बारे में उत्सुकता से सावधान रहें, और उदाहरण में DATETIME और TIMESTAMP मान पहले से संग्रहीत किए जाएंगे।
सर्वर TIME_ZONE MySQL उदाहरण स्टार्टअप पर सेट करने के लिए, /etc/my.cnf
फ़ाइल को संशोधित (या जहाँ भी अपने mysql उदाहरण प्रारंभ मानकों से पढ़ा जाता है), [mysqld] खंड के अंतर्गत:
[mysqld]
default-time-zone='+00:00'
- या - MySQL सर्वर पर समय क्षेत्र सेटिंग बदलने मूल्यों STO परिवर्तन नहीं करता है: -
mysqld_safe को
नोट --default_time_zone='+00:00'
विकल्प जोड़ने मौजूदा DATETIME या TIMESTAMP कॉलम में लाल, लेकिन चूंकि यह उस संदर्भ को प्रभावी रूप से परिवर्तित करता है जिसमें उन संग्रहीत मूल्यों का अर्थ होता है, ऐसा लगता है कि सभी मानों को स्थानांतरित किया गया है। (जहां 08:00 को 8AM सीएसटी का मतलब लिया गया था, सर्वर का टाइम_ज़ोन सीएसटी से जीएमटी में बदल गया था, वही '08: 00 'अब 8AM जीएमटी होगा, जो प्रभावी रूप से 2AM सीएसटी होगा।
यह भी ध्यान कि TIMESTAMP कॉलम हमेशा यूटीसी में जमा हो जाती में रखने के लिए, जबकि DATETIME स्तंभ एक समयक्षेत्र की जरूरत नहीं है http://dev.mysql.com/doc/refman/5.5/en/datetime.html
प्रत्येक ग्राहक सत्र के लिए अपने स्वयं के सत्र के लिए समय क्षेत्र सेटिंग बदल सकते हैं:।
SET time_zone='-06:00';
लेकिन इनमें से कोई भी नहीं वास्तव में टाइमज़ोन रूपांतरण समस्या "हल" है, यह सिर्फ रूपांतरण समस्या को हल करता है।
आवेदन परत हैंडलिंग टाइमज़ोन रूपांतरणों के साथ स्वाभाविक रूप से "खराब" कुछ भी नहीं है; कभी-कभी, यह संभालने के लिए सबसे अच्छी जगह है। यह सिर्फ सही और लगातार किया जाना है।
(आपके द्वारा वर्णित सेटअप के बारे में क्या अजीब बात यह है कि ऐप DATETIME मानों को संग्रहीत कर रहा है जैसे कि MySQL सर्वर time_zone जीएमटी पर सेट है, लेकिन MySQL सर्वर time_zone किसी और चीज़ पर सेट है।)
स्पष्ट और संक्षिप्त उत्तर के लिए बहुत धन्यवाद - शर्म की बात यह संभव नहीं है - एक और सर्वर मुझे लगता है! – buzzmonkey
एसईटी टाइमज़ोन = '- 06:00'; एसईटी टाइम_ज़ोन = '- 06:00' होना चाहिए; –