The following are number examples for the to_char function.
The following is a list of valid parameters when the to_char function is used to convert a date to a string. These parameters can be used in many combinations.
The following are date examples for the to_char function.
You will notice that in some examples, the format_mask parameter begins with "FM". This means that zeros and blanks are suppressed. This can be seen in the examples below.
The zeros have been suppressed so that the day component shows as "9" as opposed to "09".
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 PLSQL小經驗一、 Oracle的to_char()函數功能很強大但是在用它格式化數值型數據時應該請注意以下幾項。如果是小數如:0.23這樣的數據經過to_char後再<strong οnmοuseοver="isShowAds = true;isShowAds2 = true;ads.Move(this,"http://rad.17luntan.com/UploadImage/17/633111011619218750.gif","%u89C1%u6240%u672A%u89C1%uFF01%u62A2%u8D2DLG%u9510%u6BD4%u6DB2%u6676%uFF0C%u8D60%u65E0%u7EBF%u5927%u793C%21","42887","顯示","%u663E%u793A%20","http%3A//210.192.100.35/11779028996160http%3A//www.lgemonitor.com.cn/mnt/index.html%3F11779028996160", event)" style="FONT-WEIGHT: normal; CURSOR: hand; COLOR: #0000ff; TEXT-DECORATION: underline" οnclick="javascript:window.open("http://s0.17luntan.com/ClickPortal/WebClick.aspx?id=42887&k=%u663E%u793A&siteid=95d6d193-1fb9-4fc0-8708-b7ceb3276924&url=http%3A//wisebo.bokee.com/viewdiary.15801227.html&gourl=http%3A//210.192.100.35/11779028996160http%3A//www.lgemonitor.com.cn/mnt/index.html%3F11779028996160&parm=C794E0A4A49DF5F353EA88008FD215212B465427A50DDCDB&alliedsiteid=148");" οnmοuseοut="isShowAds = false;isShowAds2 = false">顯示會變爲.23,如果你爲了讓它顯示出原來的0.23的話就得用To_char(要格式化的數值,’0.999’)保留三個小數,並顯示但這裏就要注意了。他爲你截取小數的時候是四捨五入了。所以如果是要求截掉小數而不四捨五入的話就應該自己寫個函數截下去後再規格化。以保證它不四捨五入。 六 補充一點.就是在寫存儲過程時要注意參數名不能與數據庫字段名相同.否則Oracle會把這個參數名看成是字段名的,即使你用表的別名區分也不行.所以起參數名的時候一定要注意這點了. |
ORACLE 中to_char使用方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.