我需要将表的列迁移到另一种具有一些修改的数据类型。鉴于:表' USER'使用列' ORDER_TIME' (日期时间格式)。需要将列类型更改为NUMBER,将该时间转换为分钟(例如,上午8:00 = 480分钟)并存储新值。据我所知,我需要创建具有所需NUMBER数据类型的新列,迭代所有记录,进行一些重新计算,存储新值,删除旧列并将新列重命名为实际名称。所以,基本上,算法是:
ALTER TABLE USER ADD ORDER_TIME_MINS NUMBER(4) NULL;
迭代和重新计算
ALTER TABLE USER
DROP COLUMN ORDER_TIME
RENAME COLUMN ORDER_TIME_MINS TO ORDER_TIME;
您能否建议我阅读一下迭代的外观?
答案 0 :(得分:2)
您可以尝试这样:
update tablename
set columnName = to_number(to_char(to_date(yourDateColumn,'hh24:mi:ss'),'sssss'))/60
如果您的时间是晚上08:00,那么就像
一样update tablename
set columnName =TO_NUMBER(TO_CHAR(TO_DATE('08:00 AM','HH:MI AM'),'SSSSS'))/60
你所展示的其他步骤,即滴剂和肾素都很好。