PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Django:Ändern Sie TimeField in Models.py in DateTimeField

Das liegt an time kann nicht in timestamp umgewandelt (gecastet) werden (weder ihre zeitzonenbezogenen Varianten) in PostgreSQL. Bsp. dies wird auch fehlschlagen:

SELECT 'now'::time::timestamp

In diesen Fällen sollten Sie den USING verwenden -Klausel in Ihrer ALTER TABLE Anweisung (wenn Sie sie direkt bearbeiten können):

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

Ihre Abfrage sieht z. B. so aus:

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