Oracle SUBSTR 和 to_char 的问题

迦叶尊者 2012-10-11 04:34:51
select SUBSTR(TO_CHAR(20000000 + 0120526, '99999999'), 1,7) from dual;
‘201205’
select SUBSTR(TO_CHAR(20000000 + 0120526), 1,7) from dual;
‘2012052’

为什么会出这样的结果

求指点啊
...全文
260 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
8位!这个函数最大只支持左边7位:9999999.0099
迦叶尊者 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
为什么第一行会少个数字,你试试这个就知道了
select TO_CHAR(20000000 + 0120526, '9999999999999999') from dual;
因为前面全部被空格填充了。
[/Quote]

再多问一句
20000000 + 0120526 计算出结果是 20120526
但后面的格式 ‘99999999’ 也是8位啊
为什么会有空格填充呢
  • 打赏
  • 举报
回复
为什么第一行会少个数字,你试试这个就知道了
select TO_CHAR(20000000 + 0120526, '9999999999999999') from dual;
因为前面全部被空格填充了。
Cactus_hxk 2012-10-11
  • 打赏
  • 举报
回复
两个结果应该一样的!
  • 打赏
  • 举报
回复
select (20000000 + 0120526) from dual;
20000000 + 0120526这个做了运算=20120526

67,543

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧