doit8791

postgreSQL数据类型转换字符串和数值

1、将数值转成字符串类型
 方法1:调用to_char(int, text)函数,int为要转换值,text为数值格式化模式,其中模式描述为:
模式 描述
9 带有指定数值位数的值
0 带前导零的值
.(句点) 小数点
,(逗号) 分组(千)分隔符
PR 尖括号内负值
S 带符号的数值
L 货币符号
D 小数点
G 分组分隔符
MI 在指明的位置的负号(如果数字 < 0)
PL 在指明的位置的正号(如果数字 > 0)
SG 在指明的位置的正/负号 
使用举例:
SELECT to_char(12345, \'9999999999999999999\')//结果‘              12345’,结果字符串前面有空格,位数跟格式化模式中9的位数有关;
SELECT to_char(12345, \'99999\')//结果‘12345’
SELECT to_char(12345, \'9999\')//结果‘####’,当模式串小于数字个数时,字符串会显示为#,位数跟格式化模式中9的位数有关;
SELECT to_char(12345, \'\')//结果‘’
问题:将数值转成字符串且不要前面的空格实现起来很麻烦,由于无法判断格式化模式中9的位数。可用下面方法2解决:
方法2:通过||连接
\'\'||12345
2、将字符串转成数值
方法调用: to_number(text,text)函数,参数1是要转的数字字符串,参数2为模式参数
使用举例:
SELECT to_number(\'12345\', \'9999999999999999999\')//12345
SELECT to_number(\'12345\', \'99999\')//12345
SELECT to_number(\'\'||12345, \'9999\')//1234,由于模式是4位,结果忽略最后一位;
SELECT to_number(\'    12345\', \'9999999999999999999\')//12345
SELECT to_number(\'  ab  ,1,2a3,4b5\', \'9999999999999999999\')//12345,会忽略所有字符串中非数字字符





分类:

技术点:

相关文章:

  • 2022-01-12
  • 2022-02-08
  • 2021-11-05
  • 2021-05-23
  • 2021-12-05
  • 2021-12-22
  • 2021-10-04
  • 2022-01-05
猜你喜欢
  • 2021-09-27
  • 2021-09-09
  • 2022-01-16
  • 2021-09-26
  • 2021-09-27
  • 2021-10-16
  • 2020-02-18
相关资源
相似解决方案