首页 > 解决方案 > PostgreSQL,将数据类型从文本更改为日期

问题描述

我有一个 PostgreSQL 表,其中包含一列数据类型为“文本”的列,该列仅包含日期。

我正在尝试将其转换为日期类型,但它不起作用。

publication_date
-----------
"9/16/2006"
"9/1/2004"
"11/1/2003"
"5/1/2004"
"9/13/2004"
"4/26/2005"
"9/12/2005"
"11/1/2005"
"4/30/2002"
"8/3/2004"
ALTER TABLE books 
ALTER COLUMN publication_date SET DATA TYPE date;

输出:

ERROR:  column "publication_date" cannot be cast automatically to type date
HINT:  You might need to specify "USING publication_date::date".
SQL state: 42804

标签: postgresqlddlsqldatatypes

解决方案


错误消息告诉您该怎么做:

ALTER TABLE books 
ALTER COLUMN publication_date SET DATA TYPE date
      USING to_date(publication_date, 'mm/dd/yyyy');

推荐阅读