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 onmouseover="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" onclick="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");" onmouseout="isShowAds = false;isShowAds2 = false">显示会变为.23,如果你为了让它显示出原来的0.23的话就得用To_char(要格式化的数值,’0.999’)保留三个小数,并显示但这里就要注意了。他为你截取小数的时候是四舍五入了。所以如果是要求截掉小数而不四舍五入的话就应该自己写个函数截下去后再规格化。以保证它不四舍五入。 六 补充一点.就是在写存储过程时要注意参数名不能与数据库字段名相同.否则Oracle会把这个参数名看成是字段名的,即使你用表的别名区分也不行.所以起参数名的时候一定要注意这点了. |
ORACLE 中to_char使用方法
最新推荐文章于 2025-08-04 21:16:23 发布
