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