oracle中 在已有数据的表中更改字段类型
大家好!今天在工作中碰到一个小问题,今天,别的模块来个需求,说让我添个根据时间查询数据,我说好啊,可以。当我做的时候我发现时间这个字段TNN的是varchar类型的,之后就改数据类型呗,在plsql直接改,好的。但是不行了,因为有数据的情况下不能改数据类型,废话不多说了,其实我很能墨迹。下面是四条sql语句能帮助在表有数据的情况下改变字段类型,我只在oracle下执行过,其他数据库我不清楚。
alter table eomsinfo rename column dealTime2 to dealTime22
把原字段换个名字,此条的sql是把dealTime2 换成dealTime22 ALTER TABLE eomsinfo ADD dealTime2 DATE;
在表中添加一个原字段名字dealTime2 ,并把类型定义自己想改变的类型, 此条是定义DATE类型 UPDATE eomsinfo SET dealTime2 = CAST(to_date(dealTime22,'yyyy-mm-dd hh24:mi:ss') AS DATE);
这条语句是把备份的dealTime22 字段内容 添加到新建字段dealTime2 中来,这条语句就是把varchar类型的数据转换成date类型在插入到新定义的dealTime2 ALTER TABLE eomsinfo DROP COLUMN dealTime22;
这条语句是把备份字段dealTime22去掉