为什么Oracle的to_char()函数添加空格?
为什么Oracle的to_char()
函数添加空格?
select length('012'), length(to_char('012')), length(to_char('12', '000')) from dual;
3, 3, 4
您正在使用的格式掩码是固定的宽度,并允许一个减号
额外的领先空间是潜在的负号。 要删除空间,您可以按以下格式使用FM:
SQL> select to_char(12,'FM000') from dual; TO_C ---- 012
顺便说一句,请注意to_char需要NUMBER参数; to_char('012')隐式转换为to_char(to_number('012'))= to_char(12)
为了让答案更清楚:
select '['||to_char(12, '000')||']', '['||to_char(-12, '000')||']', '['||to_char(12,'FM000')||']' from dual [ 012] [-012] [012]