क्या MySQL एक संग्रहीत यूटीसी समय को स्थानीय टाइमज़ॉन में परिवर्तित कर सकता है: एड टाइम सीधे सामान्य चयन कथन में?क्या MySQL संग्रहीत यूटीसी समय को स्थानीय टाइमज़ोन में परिवर्तित कर सकता है?
मान लें कि आपके पास टाइमस्टैम्प (यूटीसी) के साथ कुछ डेटा है।
CREATE TABLE `SomeDateTable` (
`id` int(11) NOT NULL auto_increment,
`value` float NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
)
फिर जब मैं
"select value, date from SomeDateTable";
मैं निश्चित रूप से सभी तिथियों उनकी संग्रहीत यूटीसी के रूप में के रूप में मिलता है।
लेकिन कहते हैं कि मैं उन्हें (डीएसटी) के साथ एक और समय क्षेत्र में है करना चाहते हैं, मैं तो कुछ जादू का चयन क्वेरी के लिए इतना है कि मैं सभी तिथियों चयनित समय क्षेत्र में वापस पाने के जोड़ सकते हैं?
"select value, TIMEZONE(date, "Europe/Berlin") from SomeDateTable";
या मुझे कुछ पीएचपी कोड की तरह शीर्ष पर किसी अन्य परत में ऐसा करना चाहिए? (ऐसा लगता है कि अधिकांश लोगों ने इस समस्या को हल किया है)।
धन्यवाद जोहान
अपने MySQL स्थापना आप CONVERT_TZ उपयोग करने के लिए यह एक बहुत साफ समाधान है की अनुमति देता है, तो इस उदाहरण यह कैसे उपयोग करने के लिए दिखाता है।
SELECT CONVERT_TZ('2010-01-01 12:00', 'UTC', 'Europe/Stockholm')
लेकिन अगर यह एक अच्छा तरीका है के बाद से कुछ MySQL स्थापना इस समारोह याद आ रही है, सावधानी से उपयोग करें मैं नहीं जानता।
होने के लिए लगता है सही बात है लेकिन मैंने इस बग को मारा सीधे: http://bugs.mysql.com/bug.php?id=12445 मेरे सर्वर में टाइमज़ोन डेटा गुम था ... – Johan
mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u रूट mysql – Johan