Because the resulf of follwing sql is ' 24': select to_char(24,'00') from dual;You can use another method: select lengthb(to_char(24)) from dual;
http://www.itpub.net/thread-404943-1-1.html 可以参考这个然后看看这四个的结果select length(trim(to_char(24,'00'))) from dual select length(to_char(24,'00')) from dual select to_char(24,'00') from dual select to_char(24,'fm00') from dual
select to_char(-24,'00') from dual 这个去试试 你就知道为什么了
select length(to_char(-24,'00')) from dual --3 select to_char(-24,'00') from dual -- '-24' --也是3,难道是隐藏符号位?
-- 是的,前面有个空格(如果是负数,空格就变量成减号,主要是to_char()函数格式化的问题引起滴。 -- 例如:select to_char(-24,'00') from dual;则显示为: -24-- 估计这个空格是预留的符号位。
select to_char(24,'00') from dual;You can use another method:
select lengthb(to_char(24)) from dual;
select length(to_char(24,'00')) from dual
select to_char(24,'00') from dual
select to_char(24,'fm00') from dual
这个去试试 你就知道为什么了
select to_char(-24,'00') from dual -- '-24'
--也是3,难道是隐藏符号位?
-- 例如:select to_char(-24,'00') from dual;则显示为:
-24-- 估计这个空格是预留的符号位。
http://www.cnblogs.com/lyzxx/archive/2007/06/15/784902.html
-- 当没有小数部分时:
select length(to_char(-24)) from dual;-- 当小数部分为全0时:
select length(to_char(-24.0000)) from dual;-- 当小数部分为有数值,但最后N位是0时:
select length(to_char(-24.0010)) from dual;