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,会忽略所有字符串中非数字字符

来自为知笔记(Wiz)

    原文作者:PostgreSQL
    原文地址: https://www.cnblogs.com/doit8791/p/5214251.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞