为什么 ALTER TABLE xy ALTER COLUMN ab TYPE 类型在 PostgreSQL 中不起作用?

Why is ALTER TABLE xy ALTER COLUMN ab TYPE type not working in PostgreSQL?

我正在使用 PostgreSQL 和 Python,尽管当前问题的主题似乎是纯粹的 SQL。

基于PostgreSQL documentation,更改列的类型应该这样完成:

ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);

所以,如果我有一个名为“checks”的 table,其中有一列“check_date_time”,类型为“timestamp”,我想将其更改为“timestamptz” ,然后,基于以上,这应该有效:

ALTER TABLE checks ALTER COLUMN check_date_time TYPE timestamptz;

但你猜怎么着……事实并非如此。我不断收到错误消息

Error executing SQL statement. ERROR: syntax error at end of input
Position: 19 - Connection: Test: 31ms

顺便说一句,其他一切正常。我可以创建 tables、进行选择等,只是 ALTER 给我带来了这些麻烦。我已经处理了大约一个小时了,我真的 运行 不知道它可能有什么问题。非常欢迎任何建议。

转换时可能未应用正确的时区,如果您不明确说明,系统将采用时区,通常不是 UTC。

ALTER TABLE checks
  ALTER check_date_time TYPE timestamptz USING check_date_time AT TIME ZONE 'UTC'
, ALTER check_date_time SET DEFAULT now();