PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Django :Remplacez TimeField par DateTimeField dans models.py

C'est parce que time ne peut pas être converti (casté) en timestamp (ni leurs variantes liées au fuseau horaire) dans PostgreSQL. F. ex. cela échouera également :

SELECT 'now'::time::timestamp

Dans ces cas, vous devez utiliser le USING clause dans votre ALTER TABLE déclaration (si vous pouvez la modifier directement) :

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

Votre requête ressemblera, par exemple :

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