Oracle的to_char()函数以及FM的作用

常用数字格式化符

参数示例说明
9999.99在小数点前存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示空格),数字0或者不存在数字显示空格;在小数点后存在非0数字显示数字(不包括数字0,如果存在数字0,作为不存在数字处理,还是显示0,但是这个0是9转换过去的0,所以在使用FM是会消除这个9转换过去的0),数字0或者不存在数字显示0
00.00存在数字显示数字,不存在显示0
.99.99指定位置返回小数点
999,999,999指定位置返回逗号
FMFM999,999,99.99如果前后有是因为9带来的空格或者0则删除
$FM$999,999,99.00数字开头返回一个美元符号

例:
1.select to_char(01.00,'9999.9999') from dual;
由于空格看不出来,这里使用\b表示一个空格
\b\b\b1.0000
2.select to_char(01.00,'FM9999.9999') from dual;
1.
FM消除了因为使用9而转换过来的空格和0
3.select to_char(1,'FM9999.9900') from dual;
1.0000
对比2可以看出,FM只会消除数字前后因为使用9而转换过来的0,中间因为9转换过来的0并没有消除
4.select to_char('01','FM9999.0009') from dual;
1.000
验证了3,同时说明第一个参数可以是字符串
5.select to_char(01.00,'$9999.0009') from dual;
\b\b\b$1.0000
$在数字前面,紧挨着数字,在空格后面
6.select to_char(01.00,'FM$9999.0009') from dual;
$1.000
7.select to_char(01.007,'FM$9999.00') from dual;
$1.01
如果第二个参数小数点后面,比第一个参数短,
可以看到结果进行了四舍五入
8.select to_char(trunc(01.007),'FM$9999.00') from dual;
$1.00
使用trunc(),不进行四舍五入
9.select to_char(99999901.007,'FM$9999.00') from dual;
#########
如果第二个参数小数点前面比第一个参数短,会返回#####

总结:在不使用FM的情况下,小数点后面的0和9是一样的作用。都是存在非0数字显示数字,是0或者不存在数字则显示0。

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值