oracle 12c to_char 函数(2) 数字-字符串
TO_CHAR 函数,数据转换为文字形式,如下图
本节内容为TO_CHAR()第二节内容,是由数字类型变化为字符串类型
TO_CHAR() 日期型到字符型
作用
to_char 中的参数为数字类型,可以将数字转为特定格式的字符串类型 写法
TO_CHAR(数值,['数值形式'][,NLS参数])
/* @param 数值 需要变化的数值
* @param '数值形式' 变化形式(可省略)
* @param NLS_CURRENCY,指定要用作L数字格式元素的本地货币符号的字符串(可省略)
* @return 字符串
* /
主要的数值变化表
系统环境为日语环境
元素 | 说明 | 日语环境 | 测试语句 |
9 | 返回指定位数的值。利用9来反映 | 123 | select to_char(123.456,’999’) from dual; |
0 | 它返回前导0(零),它返回尾随0(零)。 | 00123 | select to_char(123.456,’00999’) from dual; |
$ | 将值前面的美元符号返回。 | $123 | select to_char(123.456,’$999’) from dual; |
L | 返回指定位置的本地货币符号(NLS_CURRENCY参数的当前值)。 | \123 | select to_char(123.456,’L999’) from dual; |
D | 指定位置用小数点表示 | 123.456 | select to_char(123.456,’999D999’) from dual; |
. | 指定位置用小数点表示 | 123.46 | select to_char(123.456,’999.99’) from dual; |
G | 返回指定位置的千位分隔符(NLS_NUMERIC_CHARACTER参数的当前值)。 您可以在单个数字格式模型中指定多于一千个分隔符。限制:在数字格式模型中,无法将千位分隔符指定为小数字符或句点的右侧。 | 123,456 | select to_char(123456,’999G999’) from dual; |
, | 将逗号返回到指定的位置。 可以为单个数字格式模型指定多个逗号.限制:数字格式模型不能以逗号元素开头。在数字格式模型中,不能在小数字符或句点的右侧指定逗号。 | 1,235 | select to_char(1234.56,’9,999’) from dual; |
MI | 它在负值最右侧一个负号( - )。它在正值之后返回空白。 | 1235- | select to_char(-1234.56,’9999MI’) from dual; |
PR | 负值尖括号<>中返回。它在正值之前和之后放置一个空白并将其返回。 | <1235> | select to_char(-1234.56,’9999PR’) from dual; |
EEEE | 科学计数法表示。 | 1E+03 | select to_char(1234.56,’9999EEEE’) from dual; |
V | 将该值相乘10的n次方(根据需要舍入数字)。 其中n是V之后的9。 | 1234560 | select to_char(1234.56,’9999V999’) from dual; |
S | 将符号表示到前方或者后方 | -1234.56 | select to_char(-1234.56,’s9999D99’) from dual; |
S | -1234.56- | select to_char(-1234.56,’s9999D99’) from dual; |
特别注意的点
- 9 代表整数的位数不能实际表示的少,不然会呈现‘ #’ 代表
- 小数点位数不够时,会出现四舍五入。
- 不指定表示的形式时,可以原样输出,但不允许数字中夹杂 别的东西。
- 指定开头为0时才会多加0,不然都省略0.
nlsparam
‘nlsparam’参数指定数字格式元素返回的形式。
- 小数字符
- 分隔数字
- 当地的货币符号
- 国际货币符号
该参数以下面的格式指定。
'NLS_NUMERIC_CHARACTERS =''d/g''
NLS_CURRENCY =''文字''
NLS_ISO_CURRENCY =地区'
字母d和g分别代表十进制字符和千位分隔符。 这些必须是不同的单字节字符。 在引用的字符串中,您需要在参数值周围使用两个单引号。 允许10个货币符号。
如果省略’nlsparam’或其中一个参数,则此函数将使用会话的默认参数值。