以下的文章是通过Oracle to_char的用法的相关代码描述来剖析Oracle to_char的用法 的实际应用,以下就是相关内容的详细介绍。
以下的文章是通过Oracle to_char的用法的相关代码描绘来分析Oracle to_char的用法在实践中的详细运用,以下便是相关内容的详细介绍。以下是文章的详细介绍,望你阅读完以下的内容会有所收成。
- Thefollowingarenumberexamplesfortheto_char
function.- to_char(1210.73,'9999.9')wouldreturn'1210.7'
- to_char(1210.73,'9,999.99')wouldreturn'1,210.73'
- to_char(1210.73,'$9,999.00')wouldreturn'$1,210.73'
- to_char(21,'000099')wouldreturn'000021'
- Thefollowingisalistofvalidparameterswhen
theto_charfunctionisusedtoconvertadateto
astring.Theseparameterscanbeusedinmany
combinations.- ParameterExplanation
- YEARYear,spelledout
- YYYY4-digityear
- YYY
- YY
- YLast3,2,or1digit(s)ofyear.
- IYY
- IY
- ILast3,2,or1digit(s)ofISOyear.
- IYYY4-digityearbasedontheISOstandard
- QQuarterofyear(1,2,3,4;JAN-MAR=1).
- MMMonth(01-12;JAN=01).
- MONAbbreviatednameofmonth.
- MONTHNameofmonth,paddedwithblankstolength
of9characters.- RMRomannumeralmonth(I-XII;JAN=I).
- WWWeekofyear(1-53)whereweek1startsonthe
firstdayoftheyearandcontinuestotheseventh
dayoftheyear.- WWeekofmonth(1-5)whereweek1startsonthe
firstdayofthemonthandendsontheseventh.- IWWeekofyear(1-52or1-53)basedontheISOstandard.
- DDayofweek(1-7).
- DAYNameofday.
- DDDayofmonth(1-31).
- DDDDayofyear(1-366).
- DYAbbreviatednameofday.
- JJulianday;thenumberofdayssinceJanuary1,4712BC.
- HHHourofday(1-12).
- HH12Hourofday(1-12).
- HH24Hourofday(0-23).
- MIMinute(0-59).
- SSSecond(0-59).
- SSSSSSecondspastmidnight(0-86399).
- FFFractionalseconds.
- Thefollowingaredateexamplesfortheto_charfunction.
- to_char(sysdate,'yyyy/mm/dd');wouldreturn'2003/07/09'
- to_char(sysdate,'MonthDD,YYYY');
wouldreturn'July09,2003'- to_char(sysdate,'FMMonthDD,YYYY');wouldreturn'July9,2003'
- to_char(sysdate,'MONDDth,YYYY');wouldreturn'JUL09TH,2003'
- to_char(sysdate,'FMMONDDth,YYYY');wouldreturn'JUL9TH,2003'
- to_char(sysdate,'FMMonddth,YYYY');wouldreturn'Jul9th,2003'
- Youwillnoticethatinsomeexamples,theformat_maskparameterbeginswith"FM".Thismeansthatzerosandblanksaresuppressed.Thiscanbeseenintheexamplesbelow.
- to_char(sysdate,'FMMonthDD,YYYY');wouldreturn'July9,2003'
- to_char(sysdate,'FMMONDDth,YYYY');wouldreturn'JUL9TH,2003'
- to_char(sysdate,'FMMonddth,YYYY');wouldreturn'Jul9th,2003'
- Thezeroshavebeensuppressedsothatthedaycomponentshowsas"9"asopposedto"09".
Oracle函数to_char转化数字型指定小数点位数的用法
Oracle to_char,函数功用,便是将数值型或许日期型转化为字符型。
比方最简略的运用:
- /*1.0123--->'1.0123'*/
- SelectTO_CHAR(1.0123)FROMDUAL
- /*123--->'123'*/
- SelectTO_CHAR(123)FROMDUAL
接下来再看看下面:
- /*0.123--->'.123'*/
- SELECTO_CHAR(0.123)FROMDUAL
上面的成果 '.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'*/
- SelectTO_CHAR(0.123,'0.999')FROMDUAL
- /*100.12--->'######'*/
- SelectTO_CHAR(100.12,'0.999')FROMDUAL
- /*1.12--->'1.120'*/
- SelectTO_CHAR(1.12,'0.999')FROMDUAL
' 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位进行四舍五入
- */
- SelectTO_CHAR(123.0233,'FM9999999.0099')FROMDUAL
PLSQL小经验一、 Oracle to_char()函数功用很强壮但是在用它格局化数值型数据时应该请留意以下几项。假如是小数如:0.23这样的数据通过to_char后再显现会变为.23,假如你为了让它显现出本来的0.23的话就得用To_char(要格局化的数值,’0.999’)保存三个小数,并显现但这儿就要留意了。
他为你截取小数的时分是四舍五入了。所以假如是要求截掉小数而不四舍五入的话就应该自己写个函数截下去后再标准化。以确保它不四舍五入。
二、 To_char(1.9999,’FM90.0999’)这个函数标准化时90.0999的意义是有9的当地假如有数字就显现假如没有数字就不显现,有0的当地在没有数字的时分也会有0来占位.但这样做也有一个很大的缺陷,便是假如是整数时它也仍然会显现”.”,不要小瞧这个点,一般来讲页面上要显现的话这个点便是剩余的.也给咱们造成了不小的费事.还要自己再写函数来把这个小点搞定.
三、 关于日期型的Oracle倒时供给了一个好的处理办法,能够把日期做成数值型的.然后再To_char就能显现出你所需求的类型了.
四、 在运用select into时必定要留意,这种办法你必定要承认必定会有数据被查出时才干运用.假如查询成果为空时会导致报错.还有一种状况是查出来的数据是多条也会报错.所以应该尽量廉价游标来做.会削减过错发生的机率.
五、 还有留意一点rownum不支持排序,便是说你想用这个来操控行数的话就会发现他没有按你指定的排序方法显现.,这是一个很棘手的事.并且假如你用rownum=2这样的句子来输出第二行的话也是行不通的. 六、 最厌恶的一点是Oracle对null的判别反常到极点.假如你说某个变量 aa=null它是判别不出来的.虽然aa的确是空.即便在挑选条件里也是判别不出来的.不知道为什么,只好用nvl()这个函数来判别了.在条件之外能够用 aa is null 来判别.
六 弥补一点.便是在写存储进程时要留意参数名不能与数据库字段名相同.不然Oracle to_char会把这个参数名看成是字段名的,即便你用表的别号区别也不可.所以起参数名的时分必定要留意这点了
【修正引荐】
- Oracle功能调整的要点中的操作系统的优化
- Oracle 11g 闪回数据归档简介
- Oracle索引怎么进步数据库的查询功率
- Oracle位图索引相关特色介绍
- Oracle表列的修正的流程
知优网 » Oracle to_char的用法描绘(oracle中to_char用法)