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為模式引數,返回的型別 numeric
使用舉例:
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,會忽略所有字串中非數字字元
select to_number('12,454.8-', '99g999d9s')
另外還可以
--把'1234'轉成整數
select cast('1234' as integer) ;
select cast('1234' as int) ;
--用substring擷取字串,從第8個字元開始擷取2個字元:結果是12。(索引從1開始)
select cast(substring('1234abc12',8,2) as integer)
還見過以下寫法
select '123456'::int test
postgresql資料型別
bigint int8 有符號的8位元組整數 bigserial serial8 自動增長的8位元組整數 bit n 定長位串 bit varying n varbit 變長位串 boolean bool 邏輯布林值 真 假 box 平面上的普通方框 bytea 二進位制資料 位元組陣列 chara...
PostgreSQL的常見資料型別
postgresql 支援的數字型別有整數型別,使用者指定精度型別,浮點型,serial型別。數字型別列表 smallint,integre,bigint都是整數型別,儲存一定範圍的整數,超出範圍將會報錯。smallint儲存2位元組的整數,字段定義時可寫成int2。integer儲存4位元組整數,...
postgresql 復合資料型別的使用方法
postgresq 資料庫的資料型別分為4種 基本資料型別 復合資料型別 域以及偽型別 基本型別 資料庫內建資料型別,例如integer char varchar等 復合資料型別 需要使用者自定義,所謂復合就是把多個基本型別融合在一起使用,復合型別的字段實際上就是乙個特殊的陣列 域 一種特殊的基本資...