In my models.py, i have some models with this kind of attributes:
timestamp = models.TimeField(default=0)
I want to change them to:
That's because time
cannot be converted (casted) to timestamp
(neither their time-zone related variants) in PostgreSQL. F.ex. this will also fail:
SELECT 'now'::time::timestamp
In these cases, you should use the USING
clause in your ALTER TABLE
statement (if you can edit it directly):
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
Your query will look like, f.ex.:
ALTER TABLE "my_model"
ALTER COLUMN "column_name"
SET DATA TYPE TIMESTAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"