zl程序教程

您现在的位置是:首页 >  其它

当前栏目

oracleto_char函数将number转成string

string 函数 number char 转成 oracleto
2023-06-13 09:14:41 时间
很多数据转换处理操作时,会遇到将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>selectto_char(12304.560,"999.99")fromdual;
TO_CHAR(12304.560,"999.99")
---------------------------
#######
SQL>selectto_char(104.560,"999.99")fromdual;
TO_CHAR(104.560,"999.99")
-------------------------
104.56
SQL>selectto_char(104.560,"99999.99")fromdual;
TO_CHAR(104.560,"99999.99")
---------------------------
104.56
SQL>selectto_char(104.560,"99999.990")fromdual;
TO_CHAR(104.560,"99999.990")
----------------------------
104.560
SQL>selectto_char(104.560,"0099.990")fromdual;
TO_CHAR(104.560,"0099.990")
---------------------------
0104.560

复制代码代码如下:

SQL>
SQL>selectto_char(round(0.007007040000,4)*100,"FM99999999990.90")||"%"asaa,
2length(to_char(round(0.007007040000,4)*100,"FM99999999990.90")||"%")asbb
3fromdual;
AABB
--------------------------
0.70%5
SQL>
SQL>selectto_char(round(0.007007040000,4)*100,"99999999990.90")||"%"asaa,
2length(to_char(round(0.007007040000,4)*100,"99999999990.90")||"%")asbb
3fromdual;
AABB
--------------------------
0.70%16

这是to_char将数字转换成字符串的常见操作功能,还有其他一些格式,见to_char(numeric)的格式模板。
复制代码代码如下:
模板描述
9带有指定位数的值
0前导零的值
.(句点)小数点
,(逗号)分组(千)分隔符
PR尖括号内负值
S带负号的负值(使用本地化)
L货币符号(使用本地化)
D小数点(使用本地化)
G分组分隔符(使用本地化)
MI在指明的位置的负号(如果数字<0)
PL在指明的位置的正号(如果数字>0)
SG在指明的位置的正/负号
RN罗马数字(输入在1和3999之间)
THorth转换成序数
V移动n位(小数)(参阅注解)
EEEE科学记数。现在不支持。

它还能将时间格式的数据转换成字符串,只是格式更加复杂。