我需要用前导零(总共8位)填充数字以供显示.我正在使用oracle.
select to_char(1011,'00000000') OPE_NO from dual; select length(to_char(1011,'00000000')) OPE_NO from dual;
而不是'00001011',我得到'00001011'.为什么我会获得额外的领先空白?完成此操作的正确数字格式字符串是什么?
PS我意识到我可以使用trim()
,但我想更好地理解数字格式.
@Eddie:我已经阅读了文档.然而,我仍然不明白如何摆脱领先的空白.
@David:这是否意味着除了使用之外没办法trim()
?
使用FM(填充模式),例如
select to_char(1011,'FM00000000') OPE_NO from dual;
从EddieAwad提到的相同文档中:
负返回值自动包含前导负号,正值自动包含前导空格,除非格式模型包含MI,S或PR格式元素.
编辑:正确的方法是使用FM修改器,如史蒂夫博斯曼回答.有关详细信息,请阅读有关格式模型修饰符的部分.