FM
经测试,FM有“双重否定为肯定”的效果,呵呵
即从字符串开始到想要格式化的位置。FM出现奇数次,则表示去除空格,出现偶数次相当于没效果
例:‘FMMonth,FMDay,FMYYYY’ ,
month出现一次则格式化,day出现两次没效果,结果为July,Monday ,2013;
'FMFMMonth,FMDay,FMYYYY'
month出现2次,day出现3次,结July ,Monday,2013;
FM就像个开关,第一个"FM"告诉ORACLE去除整个转换字符串中所有的空格,但是第二个"FM"告诉ORACLE停止去除随后的星期和年份的空格。这就意味着"Monday"带有额外的空格,而结果会显示"19"
SQL> select TO_CHAR(123.34, 'FM9999999.0099') from DUAL
2 ;
TO_CHAR(123.3
-------------
123.34
SQL> select TO_CHAR(123.34, '9999999.0099') from DUAL
2 ;
TO_CHAR(123.3
-------------
123.3400
SQL> select to_char(sysdate,'Month,Day,YYYY') from dual;
TO_CHAR(SYSDATE,'MONTH,DAY,YYYY'
--------------------------------
January ,Sunday ,2016
SQL> select to_char(sysdate,'year,month,day') from dual;
TO_CHAR(SYSDATE,'YEAR,MONTH,DAY')
----------------------------------------------------------------------
twenty sixteen,january ,sunday
SQL> select to_char(sysdate,'year,fmmonth,day') from dual;
TO_CHAR(SYSDATE,'YEAR,FMMONTH,DAY')
----------------------------------------------------------------------
twenty sixteen,january,sunday