oracle 12c to_char 函数(2) 数字-字符串

TO_CHAR 函数,数据转换为文字形式,如下图

Postgrep 数字转字符串_字符串

本节内容为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’或其中一个参数,则此函数将使用会话的默认参数值。