在rails中,我創建了一個名爲open_time的字符串列,但後來我意識到我應該使用datetime類型。我做在PostgreSQL中將字段類型從字符變爲不帶時區的時間戳
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
使用可將字符變化類型轉換爲沒有時區類型的時間戳?
你想'ALTER COLUMN ... USING'。看到例如http://stackoverflow.com/search?q=%5Bpostgresql%5D%20ALTER%20COLUMN%20using(near-dup) –