में समय क्षेत्र के बिना चरित्र से अलग-अलग समय-समय पर कॉलम प्रकार बदलें, रेल में मैंने ओपन_टाइम नामक स्ट्रिंग कॉलम बनाया लेकिन फिर मुझे एहसास हुआ कि मुझे डेटाटाइम प्रकार का उपयोग करना चाहिए। मैंपोस्टग्रेएसक्यूएल
change_column :polls, :open_time, :datetime
किया लेकिन यह कहा:
PG::Error: ERROR: column "open_time" cannot be cast to type timestamp without time zone
: ALTER TABLE "polls" ALTER COLUMN "open_time" TYPE timestamp
मैं सिर्फ स्ट्रिंग स्तंभ ड्रॉप और नए datetime कॉलम जोड़ें, मैं स्ट्रिंग स्तंभ में संग्रहीत डेटा खो देंगे। वैकल्पिक रूप से, PostgreSQL में मैं कॉलम जोड़ें:
ALTER TABLE polls ADD COLUMN published_time timestamp;
तो मैं जैसे स्ट्रिंग स्तंभ से डेटा प्राप्त करने की कोशिश की:
UPDATE polls SET published_time = strToTimeStamp(open_time);
तो मेरे सवाल का कोई काम करता है मैं strToTimeStamp
के रूप में उपयोग कर सकते हैं कर रहे हैं जो कर सकते हैं समय क्षेत्र प्रकार के बिना चरित्र भिन्न प्रकार को टाइमस्टैम्प में परिवर्तित करें?
आप 'परिवर्तन स्तंभ ... USING' चाहते हैं। उदाहरण के लिए http://stackoverflow.com/search?q=%5Bpostgresql%5D%20ALTER%20COLUMN%20using (नज़दीकी-डुप्लिकेट) –