在Oracle中将varchar列转换为date列

时间:2012-03-08 12:58:00

标签: sql oracle

我需要将列类型从VARCHAR2更改为DATE。该列已经以正确的格式存储日期。所以我试图做这样的事情

alter INM_INCIDENT rename column INM_I_REACTION_TIME to INM_I_REACTION_TIME_OLD;
alter table INM_INCIDENT add INM_I_REACTION_TIME date;
update INM_INCIDENT set INM_I_REACTION_TIME = to_date(INM_I_REACTION_TIME_OLD);
alter table INM_INCIDENT drop column INM_I_REACTION_TIME_OLD;

但是我在更新语句的行上有错误,所以我的问题是,有没有像这样将varchar复制到日期的好方法?

1 个答案:

答案 0 :(得分:4)

更新

update INM_INCIDENT set INM_I_REACTION_TIME = to_date(INM_I_REACTION_TIME_OLD, 'YYYY-MM-DD HH24:MI:SS');

您必须在字符串日期列中将字符串YYYY-MM-DD HH24:MI:SS调整为日期格式。