PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Django:cambia TimeField in DateTimeField in models.py

Questo perché time non può essere convertito (trasmesso) in timestamp (né le loro varianti relative al fuso orario) in PostgreSQL. F.ex. anche questo fallirà:

SELECT 'now'::time::timestamp

In questi casi, dovresti usare USING clausola nel tuo ALTER TABLE istruzione (se puoi modificarla direttamente):

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

La tua query sarà simile, ad es.:

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