to_char()函数的字符串转换格式归纳如下:

  to_char(var[,format]) 函数转换格式说明:

  1. [format] '999' N 为转换格式数字9的个数。

  若数字var位数小于或等于转换格式数字9的个数,则转换后的字符串前面补空字符,凑足转换格式的位数+1 个位数;若数字var位数大于转换格式数字9的个数,则无法正确转换,转后的显示是N+1个 # 号

  对于小数,只转换整数部分。

  2.[format] '099' N为转换格式数字9和0的个数

  若数字var位数小于或等于转换格式数字9+0的个数,则转换后的字符串前面一个空字符和(N-var位数-1)个0,若数字var位数大于转换格式数字9+0的个数,则无法正确转换,转后的显示是N+1个 # 号

  对于小数,只转换整数部分。

  3.[format] '990'

  转换规则同(1)

  对于小数,只转换整数部分。

  4.[format] '999.99' N1 为整数部分格式数字9的个数,N2为小数部分个数数字的个数

  数字var的整数部分转换规则同(1);小数部分若数字var位数小于N2,则小数部分补0,凑足N2的个数;若小数部分位数大于N2,则按照四舍五入截取N2个位数

  5.[format] '990.999'

  转换规则与(4)大致相同,区别在于(5)对于整数部分为0的小数处理更完善

  若:to_char(0.75,'999.99') = .75

  to_char(0.75,'990.99') = 0.75

  6.[format] 'FM999'

  转换规则与(1)相同,但这个格式可以将转换后字符串前面的空格删除,可以说处理更完善

  7.[format] 'FM990.999'

  格式(5)和格式(6)的组合,小数部分不会自动添加0,因为‘FM’会把小数末尾的0当做空字符处理,删除掉

  8.[format] 'FM990.990'

  转换规则与(7)大致相同,不同之处在于,(8)格式中会在var小数部分位数小于转换格式小数部分时,在后面加0

  [format] '990.900' 与[format] '990.990' 相同

  9.[format] 'FM990.099' 或者 'FM990.999' 2个格式相同

  对小数数字处理最完善的格式,可以将数字原样转换成字符串,当然整数部分位数不能小于数字var的整数部分位数

  10.[format] to_char(var)

  对整数数字处理最完善的格式,当然也可以用to_char(var,'FM99999999'),但是此方法有点多此一举,并且转换格式中9的个数要保证大于var的位数才能成功转换,否则转换不能成功