数值格式串 说明及示例 ---------- ----------------------------------------------------------- , 在指定位置附加逗号(便于阅读),注意逗号不能出现于格式字串首位,并且对于小数点的数字无效例如: SQL> select to_char(389999.00,¨99,999,999¨) from dual; TO_CHAR(389 ----------- 389,999. 按指定格式显示小数点及小数点后位置(指定数字没有小数的话,以0补足)例如: SQL> select to_char(18,¨999.000¨) from dual; TO_CHAR( -------- 18.000$ 字符前附加$符例如: SQL> select to_char(18,¨$999¨) from dual; TO_CH ----- $18 SQL> select to_char(18,¨999$¨) from dual; TO_CH ----- $180 字符头部或尾部附加0例如: SQL> select to_char(18.0,¨0999¨) from dual; TO_CH ----- 00189 与上类似以指定长度返回数值格式,不过如果被格式化的数值长度短于指定格式,则以空格补足。例如: SQL> select to_char(18.0,¨9999¨) from dual; TO_CH ----- 18B 当整数部分是0时返回空格(即使存在0格式串也忽略)。例如: SQL> select to_char(0.18,¨B0999¨) from dual; TO_CH -----C 返回ISO默认指定的标识(默认标识可参见:NLS_ISO_CURRENCY)例如: SQL> select to_char(128.18,¨C999999.99¨) from dual; TO_CHAR(128.18,¨C ----------------- CNY128.18D 返回指定的小数点形式(默认符:.)(默认标识可参见:NLS_NUMERIC_CHARACTER)例如: SQL> select to_char(128.18,¨9999D99¨) from dual; TO_CHAR( -------- 128.18 SQL> alter session set nls_numeric_characters=¨:"¨; 会话已更改。 SQL> select to_char(128.18,¨9999D99¨) from dual; TO_CHAR( -------- 128:18EEEE 使用科学记数法显示例如: SQL> select to_char(128.18,¨9EEEE¨) from dual; TO_CHAR ------- 1E+02G 与逗号功能类似,用指定字符分隔字串(默认符:,)(默认标识可参见:NLS_NUMERIC_CHARACTER)。例如: SQL> select to_char(11128.18,¨99G999¨) from dual; TO_CHAR ------- 11,128 SQL> alter session set nls_numeric_characters=¨:"¨; 会话已更改。 SQL> select to_char(11128.18,¨99G999¨) from dual; TO_CHAR ------- 11"128L 指定位置显示本地默认符号(默认值见:NLS_CURRENCY)例如: SQL> select to_char(999,¨L999¨) from dual; TO_CHAR(999,¨L -------------- ¥999 SQL> alter session set nls_currency=¨haha¨; 会话已更改。 SQL> select to_char(999,¨L999¨) from dual; TO_CHAR(999,¨L -------------- haha999MI 负值在尾部显示-号,正值在尾部附加空格。另:该格式符必须处于格式串尾部例如: SQL> select to_char(-18,¨999MI¨) from dual; TO_C ---- 18- SQL> select to_char(18,¨999MI¨) from dual; TO_C ---- 18PR 负值以<>尖括号包括,正值在头尾部各附加空格。另:该格式符必须处于格式串尾部例如: SQL> select to_char(-18,¨999PR¨) from dual; TO_CH ----- <18> SQL> select to_char(18,¨999PR¨) from dual; TO_CH ----- 18RN/rn 返回罗马数字形式。注:大写格式串返回大写罗马数字,小写格式串返回小写罗马数字:)例如: SQL> select to_char(18,¨RN¨) from dual; TO_CHAR(18,¨RN¨ --------------- XVIII SQL> select to_char(18,¨rn¨) from dual; TO_CHAR(18,¨RN¨ --------------- xviiiS 显示数值正负值符号。可出现于格式串首部或尾部。例如: SQL> select to_char(18,¨S9999¨) from dual; TO_CH ----- +18 SQL> select to_char(18,¨9999S¨) from dual; TO_CH ----- 18+TM 字符格式转换(标准数值与科学计数法),可以通过附加9或e控制输出,默认是tm9,如果输出超过64个字符,则数据库自动转换成科学计数法显示。该格式串不能与其它的数值型格式串同时使用。例如: SQL> select TO_CHAR(128,¨tme¨) from dual; TO_CHAR(128,¨TME¨) ---------------------------------------------------------------- 1.28E+02 SQL> select TO_CHAR(1.28E+02,¨tm¨) from dual; TO_CHAR(1.28E+02,¨TM¨) ---------------------------------------------------------------- 128U 与L类似,在指定位置显示货币单位(默认值见:NLS_DUAL_CURRENCY)例如: SQL> select TO_CHAR(128,¨999U¨) from dual; TO_CHAR(128,¨9 -------------- 128 ¥ SQL> alter session set nls_dual_currency=¨aaa¨; 会话已更改。 SQL> select TO_CHAR(128,¨999U¨) from dual; TO_CHAR(128,¨9 -------------- 128aaaV 数值+10的n次方,n=V后9的个数例如: SQL> select TO_CHAR(128,¨999V999¨) from dual; TO_CHAR ------- 128000X 返回指定数值对应的16进制数,必须是正数。如果指定数值非整的话,oracle会自动round取整。例如: SQL> select TO_CHAR(16,¨XXXX¨) from dual; TO_CH ----- 10 |
|