W szynach utworzyłem kolumnę ciągów o nazwie open_time, ale potem zdałem sobie sprawę, że powinienem użyć typu daty i czasu. ZrobiłemZmienia typ kolumny od znaku zmieniającego się na znacznik czasu bez strefy czasowej w PostgreSQL
change_column :polls, :open_time, :datetime
Ale powiedział:
PG::Error: ERROR: column "open_time" cannot be cast to type timestamp without time zone
: ALTER TABLE "polls" ALTER COLUMN "open_time" TYPE timestamp
Gdybym tylko kropla kolumnę ciąg i dodać nową kolumnę datetime, stracę dane przechowywane w kolumnie strun. Alternatywnie, w PostgreSQL dodać kolumnę:
ALTER TABLE polls ADD COLUMN published_time timestamp;
Potem starałem się uzyskać dane z kolumny ciąg jak:
UPDATE polls SET published_time = strToTimeStamp(open_time);
Więc moje pytanie jest czy są jakieś funkcje mogę użyć jako strToTimeStamp
które mogą przekształcić typ zmieniający znak na znacznik czasu bez typu strefy czasowej?
Chcesz 'ALTER COLUMN ... USING'. Zobacz np. Http://stackoverflow.com/search?q=%5Bpostgresql%5D%20ALTER%20COLUMN%20using (near-dup) –