Това е така, защото time
не може да се преобразува (кастира) в timestamp
(нито техните варианти, свързани с часовата зона) в PostgreSQL. F.ex това също ще се провали:
SELECT 'now'::time::timestamp
В тези случаи трябва да използвате USING
клауза във вашата ALTER TABLE
израз (ако можете да го редактирате директно):
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
Вашата заявка ще изглежда така, напр.:
ALTER TABLE "my_model"
ALTER COLUMN "column_name"
SET DATA TYPE TIMESTAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"