Solución:
Postgres no sabe cómo traducir int a timestamp. Son varios los casos y suelen tener distinta fecha de inicio.
- Crear columna temporal con marca de tiempo
- Actualice la tabla y copie los datos de la columna anterior a la columna temporal utilizando su propia traducción
- Suelta la columna vieja
- Cambiar el nombre de la columna temporal.
Si busca en la documentación, encontrará una sintaxis de una línea con un ejemplo de cómo convertir un tipo entero de tiempo unix:
ALTER [ COLUMN ] column [ SET DATA ] TYPE type [ USING expression ]
Postgres no permite que la columna de tipo int cambie directamente a la zona horaria. Para lograr esto, primero debe cambiar el tipo de columna a varchar y luego cambiarlo a la zona horaria.
alter table tableName alter column columnName type varchar(64);
alter table tableName alter column columnName type timestamp with time zone;
Hay una mejor manera de hacer esto, con el USING
cláusula. Al igual que:
ALTER TABLE tableName
ALTER columnName type TIMESTAMP WITH TIME ZONE
USING to_timestamp(columnName) AT TIME ZONE 'America/New_York';
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)