匿名用户oracle :用to_number函数将日期转为数字,报无效数字,日期类型为varchar2,有什么办法可以解决?
oracle:用to_number函数将日期转为数字,报无效数字,日期类型为varchar2,有什么办法可以解决?
我来答
添加附件
收藏
复制链接
微信扫码分享
在小程序上查看
分享
添加附件
问题补充
4条回答
默认
最新
SQL> create table test.test1 (itime varchar2(30));
Table created.
SQL> insert into test.test1 values('20220113');
1 row created.
SQL> commit;
Commit complete.
SQL> select itime from test.test1;
ITIME
------------------------------
20220113
SQL> select to_number(itime) from test.test1;
TO_NUMBER(ITIME)
----------------
20220113
需要注意的是,被转换的字符串必须符合数值类型格式,如果被转换的字符串不符合数值型格式,Oracle 将抛出错误提示
SQL> insert into test.test1 values('20220113 13:08:00');
1 row created.
SQL> commit;
Commit complete.
SQL> select itime from test.test1;
ITIME
------------------------------
20220113
20220113 13:08:00
SQL> select to_number(itime) from test.test1;
ERROR:
ORA-01722: invalid number
no rows selected
这样不符合的字符就会报无效的数字。无过多研究,仅供参考!
评论
有用 0
不能直接转,可以先将日期用to_date转成日期格式,再按您的格式要求转成对应的形式
评论
有用 0你这是字符串转数字而已,当然要遵从字符串转数字的规则,如果字符串里不是数值当然会报错。
你先把你的日期字符串格式内容发出来,再来看怎么转换
评论
有用 0回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


