Đó là bởi vì time
không thể chuyển đổi (truyền) thành timestamp
(không phải là biến thể liên quan đến múi giờ của chúng) trong PostgreSQL. F.ex. điều này cũng sẽ không thành công:
SELECT 'now'::time::timestamp
Trong những trường hợp này, bạn nên sử dụng USING
mệnh đề trong ALTER TABLE
của bạn tuyên bố (nếu bạn có thể chỉnh sửa trực tiếp):
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
Truy vấn của bạn sẽ giống như, f.ex .:
ALTER TABLE "my_model"
ALTER COLUMN "column_name"
SET DATA TYPE TIMESTAMP WITH TIME ZONE USING 'yesterday'::date + "column_name"