您好,欢迎访问一九零五行业门户网

Oracle基础教程:函数to_char将number转成string

很多数据转换处理操作时,会遇到将0.007007040000转换成0.70%的需求,我们使用oracle 的sql 函数 to_char可以实现这种转换。这个
很多数据转换处理操作时,会遇到将0.007007040000转换成0.70%的需求,我们使用oracle 的sql 函数 to_char可以实现这种转换。
这个函数用来将date或number数据类型转换成可显示的字符串,格式是to_char(number_type, format_mask)。
格式'999.99',9表示对应的某一个指定位数的值,如果是值是0则忽略不显示,如果指定位数没有值,则以空格表示。
格式'0990.990',0表示对应的某一个指定位数的值,如果是值是0则显示为0,如果是没有值也显示为0。
格式'fm990.90',fm表示将显示出来的字符串定位数没有值而显示的空格清理掉,作用和ltrim类似。
sql> select to_char(12304.560,'999.99') from dual;
to_char(12304.560,'999.99')
---------------------------
#######
sql> select to_char(104.560,'999.99') from dual;
to_char(104.560,'999.99')
-------------------------
 104.56
sql> select to_char(104.560,'99999.99') from dual;
to_char(104.560,'99999.99')
---------------------------
  104.56
sql> select to_char(104.560,'99999.990') from dual;
to_char(104.560,'99999.990')
----------------------------
  104.560
sql> select to_char(104.560,'0099.990') from dual;
to_char(104.560,'0099.990')
---------------------------
 0104.560
sql代码
sql>
sql> select to_char(round(0.007007040000, 4) * 100, 'fm99999999990.90') || '%' as aa,
  2        length(to_char(round(0.007007040000, 4) * 100, 'fm99999999990.90') || '%') as bb
  3    from dual;
aa                      bb
---------------- ----------
0.70%                    5
sql>
sql> select to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%' as aa,
  2        length(to_char(round(0.007007040000, 4) * 100, '99999999990.90') || '%') as bb
  3    from dual;
aa                      bb
---------------- ----------
          0.70%        16
这是to_char将数字转换成字符串的常见操作功能,还有其他一些格式,见to_char(numeric)的格式模板。
模板代码
模板    描述
9    带有指定位数的值
0    前导零的值
. (句点)    小数点
, (逗号)    分组(千)分隔符
pr    尖括号内负值
s    带负号的负值(使用本地化)
l    货币符号(使用本地化)
d    小数点(使用本地化)
g    分组分隔符(使用本地化)
mi    在指明的位置的负号(如果数字 pl    在指明的位置的正号(如果数字 > 0)
sg    在指明的位置的正/负号
rn    罗马数字(输入在 1 和 3999 之间)
th or th    转换成序数
v    移动 n 位(小数)(参阅注解)
eeee    科学记数。现在不支持。
它还能将时间格式的数据转换成字符串,只是格式更加复杂。

其它类似信息

推荐信息