PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django:Altere TimeField para DateTimeField em models.py


Isso porque time não pode ser convertido (casted) para timestamp (nem suas variantes relacionadas ao fuso horário) no PostgreSQL. F.ex. isso também irá falhar:
SELECT 'now'::time::timestamp

Nesses casos, você deve usar o USING cláusula em seu ALTER TABLE declaração (se você puder editá-la diretamente):
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
ALTER [ COLUMN ] column_name
[ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]

Sua consulta será semelhante, por exemplo:
ALTER TABLE "my_model"
ALTER COLUMN "column_name"
SET DATA TYPE TIMESTAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"