Ответ 1
Вы не можете изменить тип поля от времени до метки времени ( "datetime" ), потому что значения не могут быть преобразованы - база данных не знает дату.
Однако вы можете удалить и снова создать столбец:
ALTER TABLE products DROP COLUMN deleted_at;
ALTER TABLE products ADD COLUMN deleted_at timestamp;
Или, если для этого поля установлено значение NOT NULL, вы должны:
ALTER TABLE products ADD COLUMN deleted_at timestamp NOT NULL;
Но если вы настаиваете на сохранении поддельных значений в этой таблице, например, Sean, вы можете использовать ALTER... TYPE... ИСПОЛЬЗОВАТЬ вот так:
ALTER TABLE products ALTER COLUMN deleted_at TYPE timestamp USING
CASE WHEN deleted_at IS NOT NULL THEN timestamp '1970-01-01 00:00:00' END;
-- Or:
ALTER TABLE products ALTER COLUMN deleted_at
TYPE timestamp USING date '1970-01-01' + deleted_at;