2012-03-08 82 views
0

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

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迄今为止任何像这样很好的解决方案?

+0

你的字符串日期格式是什么? – 2012-03-08 12:59:53

+0

看起来像这个'2007-07-10 15:01:03' – 2012-03-08 13:04:41

+0

看到我更新的答案。 – 2012-03-08 13:16:15

回答

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调整到您的日期格式字符串中的日期列。