phpmyadmin निर्यात int (11) से CSV डीडी / मिमी / yy प्रारूप - mysql, sql, phpmyadmin

SQl के लिए नया हूँ और phpmyadmin के माध्यम से एक डंप करने की कोशिश कर रहा हूं।

इस समय डेटा को मेरे DB में int (11) के रूप में संग्रहीत किया जाता है।

जब मैं phpmyadmin से निर्यात करता हूं, तो डेटा स्वाभाविक रूप से "1325336400" जैसे नंबरों के रूप में निर्यात किया जाता है, लेकिन मैं इसे 01/01/2012 या इसी तरह के प्रारूप के रूप में प्रदर्शित करना चाहूंगा। क्या कोई और तरीका है इसे करने के लिए?

अग्रिम में बहुत धन्यवाद

जूस

उत्तर:

उत्तर № 1 के लिए 1

यदि आप 32-बिट पूर्णांक में "अपना दिनांक डेटा" (जैसा कि आप इसे डालते हैं) संग्रहीत कर रहे हैं, तो मुझे लगता है कि आप * निक्स टाइमस्टैम्प मूल्यों (1-जन-1970-00 00 यूटीसी युग के बाद से सेकंड) का उपयोग कर रहे हैं।

(आप जानते हैं कि यह 2038 में किसी समय बह सकता है, है ना? http://en.wikipedia.org/wiki/Year_2038_problem)

phpmyadmin इन मूल्यों के साथ एक कठिन समय है, जैसा कि आपने खोजा है।

MySQL में एक TIMESTAMP डेटा प्रकार है जो * nix- शैली टाइमस्टैम्प का भी उपयोग करता है। (यह "t अतिप्रवाह जीता; MySQL डेवलपर्स ने सही काम किया।"

आपको वास्तव में अपना दिनांक डेटा TIMESTAMP डेटा प्रकार में बदलने की आवश्यकता है। अन्यथा समय के साथ काम करना गर्दन में भारी दर्द होगा, हमेशा के लिए। यहाँ यह कैसे करना है।

सबसे पहले, अपनी तालिका में इस तरह से एक कॉलम जोड़ें,

ALTER TABLE mytable ADD COLUMN ts TIMESTAMP AFTER myinttimestamp

फिर अपना नया आबाद करें ts आपके पास पहले से मौजूद मानों का उपयोग करके कॉलम।

UPDATE TABLE mytable SET ts = FROM_UNIXTIME(myinttimestamp)

इसके बाद, अपने नए कॉलम की परिभाषा को बदल दें ताकि यह NULL मान को बंद कर दे और वर्तमान समय को डिफ़ॉल्ट के रूप में उपयोग करता है:

ALTER TABLE mytable
CHANGE ts
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL

अंत में, यदि आप चाहें तो आप पुराने कॉलम को INT मान के साथ निकाल सकते हैं।

ALTER TABLE mytable DROP COLUMN myinttimestamp

(आपको अपनी तालिका की एक प्रति पर यह सब आज़माने पर विचार करना चाहिए; यह गलती करने और आपके डेटा को बर्बाद करने के लिए बदबू देगा)।

जब आप इसका उपयोग करते हैं TIMESTAMP डेटा प्रकार, MySQL UTC (समय-क्षेत्र-असंवेदनशील) समय में आंतरिक रूप से इन सभी टाइमस्टैम्पों को संग्रहीत करने के लिए अपनी पूरी कोशिश करता है, और आपके द्वारा सेट किए गए प्रदर्शन के आधार पर उन्हें स्थानीय समय में परिवर्तित करता है।

 SET time_zone = "Asia/Vladivostok"

जो कुछ भी। यह उन्हें स्थानीय समय से यूटीसी के समय में भी परिवर्तित कर देगा जब आप उन्हें डेटा बेस में डाल देंगे।

यहाँ एक लिखना है।

https://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html


संबंधित सवाल
सबसे लोकप्रिय