Trong đường ray, tôi đã tạo một cột chuỗi gọi là open_time nhưng sau đó tôi nhận ra rằng tôi nên sử dụng kiểu datetime. Tôi đã làmThay đổi loại cột từ ký tự thay đổi thành dấu thời gian không có múi giờ trong PostgreSQL
change_column :polls, :open_time, :datetime
Nhưng nó nói:
PG::Error: ERROR: column "open_time" cannot be cast to type timestamp without time zone
: ALTER TABLE "polls" ALTER COLUMN "open_time" TYPE timestamp
Nếu tôi chỉ cần thả cột chuỗi và thêm cột datetime mới, tôi sẽ mất các dữ liệu được lưu trữ trong cột chuỗi. Ngoài ra, trong PostgreSQL tôi thêm cột:
ALTER TABLE polls ADD COLUMN published_time timestamp;
Sau đó, tôi đã cố gắng để lấy dữ liệu từ cột chuỗi như:
UPDATE polls SET published_time = strToTimeStamp(open_time);
Vì vậy, câu hỏi của tôi là được có bất kỳ chức năng tôi có thể sử dụng như là strToTimeStamp
rằng có thể chuyển đổi loại ký tự khác nhau thành dấu thời gian không có loại múi giờ?
Bạn muốn 'ALTER COLUMN ... USING'. Xem ví dụ http://stackoverflow.com/search?q=%5Bpostgresql%5D%20ALTER%20COLUMN%20using (gần-dup) –