我想将一行TAH_START (VARCHAR2)从小时:分钟的时间格式转换为数字 TAH_START_NUM (NUMBER(19))。
例如,08:56您需要想象如何08 + 56/60 = 8.93333333.
我试过这样:
UPDATE TEST_TABLE
SET TAH_START_NUM = substr(TAH_START, 1, 2) + (substr(TAH_START, 4, 2) / 60)
执行后,数据如下:
16:21 16
08:24 8
08:47 9
...
05:35 6
但是结果看起来不像预期的那样,我认为问题出在小写数字格式上。
列类型声明
NUMBER(19)是一种速记符号NUMBER(19,0)。如果超过这些值会怎样?短暂离开办公室。文档:
该值将被四舍五入。根据那些,解决方案将是完全放弃限制,或者为其指定合理的值。任务。例如:
重复插入和更新,现在输出如预期: