私は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) –