ORACLE格式化數字的方法

2022-03-17 09:02:49 字數 1458 閱讀 4961

to_char,函式功能,就是將數值型或者日期型轉化為字元型。

比如最簡單的應用:

/*1.0123--->'1.0123'*/

select to_char(1.0123) from dual

/*123--->'123'*/

select to_char(123) from dual

接下來再看看下面:

/*0.123 ---> '.123' */

selec to_char(0.123) from dual

上面的結果 '.123' 在大多數情況下都不是我們想要的結果,我們想要的應該是 '0.123'。

我們來看一下to_char函式的具體用法:

to_char ( n [, fmt [, 'nlsparam']] )

該函式將number型別的n按數值格式fmt轉換成varchar2型別的值。'nlsparams'指定由數值格式的元素返回的字元,包括:

.小數點字元

.組分隔符

.本地錢幣符號

.國際錢幣符號

變元的形式為:

'nls_numeric_characters="dg" nls_currency="tcxt" nls_iso_currency=territory'

其中d為小數點字元,g為組分隔符。

例 :to_char (17145,'l099g999','nls_numeric_characters=".," nls_currency="nud"')=nud017,145

通過上面的了解,再檢視fmt的一些格式,我們可以用以下表示式得到'0.123'的值:

/*0.123 ---> ' 0.123' */ 

select to_char(0.123,'0.999') from dual

/*100.12 ---> '######' */ 

select to_char(100.12,'0.999') from dual

/*1.12 ---> ' 1.120' */ 

select to_char(1.12,'0.999') from dual

' 0.123'是出來了,可是前面又多了乙個空格。

對於 100.12 的值卻是######,以及'1.12'的值變成了 '1.120'。

我們重新確定乙個新的需求:

1、去空格

2、小數點最多4位,最少保留2位。

1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';

1.12345--->'1.1235'

最終實現如下:

/*   fm :除空格  

9999999.0099:允許小數點左邊最大正數為7位,小數點右邊最少2位,最多4位,且在第5位進行四捨五入

*/ select to_char(123.0233,'fm9999999.0099') from dual

Oracle 格式化數字

start 所謂格式化數字指的是將數字轉為字串,或將字串轉為數字,下面幾個函式可以用來格式化數字。to char number,format to number character format to binary float character format to binary double ch...

Oracle格式化數字和日期的方法

to char,函式功能,就是將數值型或者日期型轉化為字元型。比如最簡單的應用 1.0123 1.0123 select to char 1.0123 from dual 123 123 select to char 123 from dual 接下來再看看下面 0.123 123 selec to...

格式化數字

格式化數字 下表是可在format函式中用於格式化數字的字元。字元 說明0 數字佔位符。顯示乙個數字或0。如果表示式在格式字串中出現0的位置上有數字,則顯示該數字 否則在該位置顯示0。如果數字的位數少於格式表示式中 0 的個數 小數點任一側 則顯示前導零或尾隨零。如果數字的小數點分隔符右側的位數多於...