Saltar al contenido

Modificar un tipo de datos de columna Postgres

Solución:

Postgres no sabe cómo traducir int a timestamp. Son varios los casos y suelen tener distinta fecha de inicio.

  1. Crear columna temporal con marca de tiempo
  2. Actualice la tabla y copie los datos de la columna anterior a la columna temporal utilizando su propia traducción
  3. Suelta la columna vieja
  4. 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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *