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

Django:Skift TimeField til DateTimeField i models.py

Det er fordi time kan ikke konverteres (castes) til timestamp (hverken deres tidszonerelaterede varianter) i PostgreSQL. F.eks. dette vil også mislykkes:

SELECT 'now'::time::timestamp

I disse tilfælde skal du bruge USING klausul i din ALTER TABLE sætning (hvis du kan redigere den direkte):

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

Din forespørgsel vil se sådan ud, f.eks.:

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


  1. MySql:Sammenlign 2 strenge, som er tal?

  2. Sådan tjekker du ind i MySQL, hvis en dato i en række datoer falder mellem datoer i en tabel

  3. Rails ActiveRecord forbinder til forkert Postgres-database

  4. Opret geografipolylinje fra punkter i T-SQL