sql >> Base de Datos >  >> RDS >> PostgreSQL

Django:cambie TimeField a DateTimeField en models.py

Eso es porque time no se puede convertir (transmitir) a timestamp (ni sus variantes relacionadas con la zona horaria) en PostgreSQL. F. ej. esto también fallará:

SELECT 'now'::time::timestamp

En estos casos, debe usar el USING cláusula en su ALTER TABLE declaración (si puede editarla directamente):

ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
ALTER [ COLUMN ] column_name
[ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]

Su consulta se verá como, p. ej.:

ALTER TABLE "my_model"
ALTER COLUMN "column_name"
SET DATA TYPE TIMESTAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"