ORACLE to char函式詳解

2021-06-15 21:39:27 字數 1741 閱讀 1583

oracle函式to_char轉化數字型指定小數點位數的用法

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

對long型好像會報錯

比如最簡單的應用:

/*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 to char函式學習

在實際的工作中會經常會用到to char to date 函式來對時間 日期進行處理。1 to char 函式的用法 1.1 將時間日期按照指定的格式輸出,得到的是字串,而非date型別。select sysdate,to char sysdate,yyyy mm dd from dual sele...

Oracle to char格式化函式

postgres 格式化函式提供一套有效的工具用於把各種資料型別 日期 時間,int,float,numeric 轉換成格式化的字串以及反過來從格式化的字串轉換成原始的資料型別。注意 所有格式化函式的第二個引數是用於轉換的模板。表 5 7.格式化函式 函式返回 描述例子 to char timest...

Oracle to char格式化函式

postgres 格式化函式提供一套有效的工具用於把各種資料型別 日期 時間,int,float,numeric 轉換成格式化的字串以及反過來從格式化的字串轉換成原始的資料型別。注意 所有格式化函式的第二個引數是用於轉換的模板。表 5 7.格式化函式 函式返回 描述例子 to char timest...