레일에서 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
, 나는 문자열 컬럼에 저장된 데이터를 잃게됩니다. 또한, PostgreSQL의에서 나는 열을 추가 :
ALTER TABLE polls ADD COLUMN published_time timestamp;
그런 다음 내가 좋아하는 문자열 열에서 데이터를 가져 오기 위해 노력 :
이
UPDATE polls SET published_time = strToTimeStamp(open_time);
그래서 내 질문은 어떤 기능을 내가 strToTimeStamp
로도 사용할 수 있습니다되는 수 타임 존 타입을 사용하지 않고 문자를 가변하는 타입을 타임 스탬프로 변환합니까?
당신은 ... USING'를 COLUMN을 ALTER'합니다. 예를 들어보십시오 http://stackoverflow.com/search?q=%5Bpostgresql%5D%20ALTER%20COLUMN%20using (dup) –