ORACLE的TO_CHAR()转换格式

来源:互联网 发布:吴天心知乎 编辑:程序博客网 时间:2024/05/21 06:47

经常遇到将number、binary_float、binary_double等类型数据按指定的数据精度写入Oracle数据库而出现各种小问题,可以通过Oracle的转换函数to_char()做到。

to_char()函数

to_char()函数主要有以下几种常见的用法:

  • 1. to_char(N)
    将数值N直接转换为VARCHAR2字符串

  • 2. to_char(N,‘format’)
    将数值N安装指定格式(format)转换为VARCHAR2字符串,其中format可以有以下格式:

序号 格式 Example 说明 1 ,(逗号) ‘9999,999’ 逗号,一般以千分位分组符号使用.如果需要您也可以当作是十分位,百分位出现,可以出现N次,视乎数字的大小而定变态的例子是 to_char(1234,’9,9,9,9’)。 注意事项:只能出现在整数部分。 2 .(点) ‘9999.99’ 点只能出现在小数点对应的地方且只能出现一次,to_char(1234.34,’9,9,9,9.99’);* 注意事项:* 只能出现在一个地方,且在原来数据小数点位置。 3 $(美元符号) ‘$999.99’ 美元.其实你可以放在任意地方(在10G下)to_char(1234.34,’9,9,9,9.$99’)注意事项:只能出现一次. 4 0(零) ‘0999.99’ 零,在对应位置返回对应的字符,如果没有则以’0’填充, to_char(0.34,’9,9,9,0.$99’)=’$0.34’,to_char(1234,’9999.00’)=’1234.00’;注意事项:这是一个强制的符号,对应位没有,则以’o’填充,这是9很大不同地方 。 5 9 ‘999.99’ 9在小数位,则表示转换为对应字符,如果没有则以0表示;在整数位,没有对应则不填充字符,to_char(123,’999.99’)=123.00, to_char(123,’99999.9’)=123.0;注意事项:对于0和9而言,如果格式的位数不如数字的位数多,会返回’#’.譬如to_char(12345,’9999’)=’#####’

to_char(datetime)

将日期转化为字符串。主要的应用格式分为两类:简写单个字母(或者其复现形式)代表时间位置譬如yyyy ,mm,dd ,hh之类;其次是以英文的时间单词的简写代表时间,例如mon,day,year。下表的格式基本上也都可以用于TO_DATE, TO_TIMESTAMP, TO_TIMESTAMP_TZ,TO_YMINTERVAL,TO_DSINTERVAL函数。

序号 格式 Example 说明 1
    / , . ; :”text”
略 时间分隔符号,除了标准的几个,还允许用文字作为分割符号。例如 to_char(sysdate,’YYYY”年”mm”月”dd”日”’)=2008年04月24日

更多更详细的资料请参考: ORACLE函数TO_CHAR以及数字转换格式

0 0
原创粉丝点击