PostgreSQL - 错误: 列 "date" 无法转换为日期类型

12
我希望将PostgreSQL数据库中的特定列从character_varying类型转换为date类型。 phpPgAdmin返回以下错误:

错误:无法将列“date”转换为日期类型

语句:ALTER TABLE“public”。“tablename” ALTER COLUMN“date” TYPE date

我该怎么办? 谢谢。
1个回答

36
你可能需要先将它转换为文本:
alter table "foo" alter column "date" type date using ("date"::text::date);

1
你好,感谢回答。我有另一个问题。日期列在我的某个视图中使用,因此我会收到以下错误:错误:无法更改视图或规则使用的列的类型我该如何解决这个问题? - Athanasios Emmanouilidis
1
在这种情况下,您不能这样做:您需要删除视图并重新创建它。 - Denis de Bernardy
1
如果您想保存或查看视图的定义,它存储在pg_views中。 - Scott Marlowe
1
如果我的列保存的是dd/mm/yyyy格式的日期,我该如何实现这一点?使用您的解决方案后,我收到了以下错误消息。PG :: DatetimeFieldOverflow:ERROR:日期/时间字段值超出范围:“27/11/1992” 提示:也许您需要不同的“datestyle”设置。 - acrogenesis
1
@acrogenesis:请查看to_date()函数。 - Denis de Bernardy
我通过在修改表之前将日期格式设置为DMY来解决了这个问题。就像这样:SET datestyle = "ISO, DMY"; 谢谢。 - acrogenesis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接