to_char()的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了to_char()的用法相关的知识,希望对你有一定的参考价值。

参考技术A

Oracle函数to_char转化数字型指定小数点位数的用法
to_char,函数功能,就是将数值型或者日期型转化为字符型。
比如最简单的应用:
/*1.0123--->’1.0123’*/
Select TO_CHAR(1.0123) FROM DUAL
/*123--->’123’*/
Select TO_CHAR(123) FROM DUAL
Oracle中TO_DATE TO_CHAR格式
TO_CHAR 是把日期或数字转换为字符串
TO_CHAR 使用TO_CHAR函数处理数字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’)
; 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’);
Oracle to_char格式化函数
Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。 注意:所有格式化函数的第二个参数是用于转换的模板。表 5-7. 格式化函数 函数 返回 描述 例子 to_char(timestamp, text) text 把 timestamp 转换成 string to_char(timestamp 'now','HH12:MI:SS') to_char(int, text) text 把 int4/int8 转换成 string to_char(125, '999') to_char(float, text) text 把 float4/float8 转换成 string to_char(125.8, '999D9') to_char(numeric, text) text 把 numeric 转换成 string to_char(numeric '-125.8', '999D99S') to_date(text, text) date 把 string 转换成 date to_date('05 Dec 2000', 'DD Mon YYYY') to_timestamp(text, text) date 把 string 转换成 timestamp to_timestamp('05 Dec 2000', 'DD Mon YYYY') to_number(text, text) numeric 把 string 转换成 numeric to_number('12,454.8-', '99G999D9S') 表 5-8. 用于 date/time 转换的模板 模板 描述 HH 一天的小时数 (01-12) HH12 一天的小时数 (01-12) HH24 一天的小时数 (00-23) MI 分钟 (00-59) SS 秒 (00-59) SSSS 午夜后的秒 (0-86399) AM or A.M. or PM or P.M. 正午标识(大写) am or a.m. or pm or p.m. 正午标识(小写) Y,YYY 带逗号的年(4 和更多位) YYYY 年(4和更多位) YYY 年的后三位 YY 年的后两位 Y 年的最后一位 BC or B.C. or AD or A.D. 年标识(大写) bc or b.c. or ad or a.d. 年标识(小写) MONTH 全长大写月份名(9字符) Month 全长混合大小写月份名(9字符) month 全长小写月份名(9字符) MON 大写缩写月份名(3字符) Mon 缩写混合大小写月份名(3字符) mon 小写缩写月份名(3字符) MM 月份 (01-12) DAY 全长大写日期名(9字符) Day 全长混合大小写日期名(9字符) day 全长小写日期名(9字符) DY 缩写大写日期名(3字符) Dy 缩写混合大小写日期名(3字符) dy 缩写小写日期名(3字符) DDD 一年里的日子(001-366) DD 一个月里的日子(01-31) D 一周里的日子(1-7;SUN=1) W 一个月里的周数 WW 一年里的周数 CC 世纪(2 位) J Julian 日期(自公元前4712年1月1日来的日期) Q 季度 RM 罗马数字的月份(I-XII;I=JAN)-大写 rm 罗马数字的月份(I-XII;I=JAN)-小写 所有模板都允许使用前缀和后缀修改器。模板里总是允许使用修改器。前缀 'FX' 只是一个全局修改器。
表 5-9. 用于日期/时间模板 to_char() 的后缀 后缀 描述 例子 FM 填充模式前缀 FMMonth TH 大写顺序数后缀 DDTH th 小写顺序数后缀 DDTH FX 固定模式全局选项(见下面) FX Month DD Day SP 拼写模式(还未实现) ddsp

oracle里nvl,to_char,decode这些函数怎么用啊?

  Oracle提供了一些逻辑判断函数,这些函数可以在查询中使用。

1. nvl :针对空值进行测试

    函数原型为:NVL(testValue,SubstituteValue)

    常见的用法是  Select max(score) From SC Where Name=‘Jerry’

    有时max(score)为空,也就是说Jerry并没有考试记录,这时我们用"No Record"标注一下:

    Select NVL(max(score),"No Record") From SC;

 

    还有一个NVL2函数跟其相似,函数原型为: NVL(testValue,SubValue1,SubValue2)

NVL2函数实现的是若testValue为NULL,返回SubValue1,否则返回SubValue2。


2.Decode函数

  Decode函数的原型为: Decode(testValue, if1, then1, if2,then2.....else).

   针对testValue进行测试,若testValue等于if1则返回then1,若testValue等于if2则返回then2,....若都没有返回,刚返回else. 示例如下:

若我们用Decode可以这样实现:

SELECT class, course,
       DECODE (student,
               \'A\', \'Anco\',
               \'B\', \'Bily\',
               \'C\', \'Candy\',
               \'D\', \'Davi\',
               \'E\', \'Eve\',
               \'F\', \'Fion\'
              ) AS en_name
  FROM studentinfo


3. to_char函数功能,就是将数值型或者日期型转化为字符型,转换过程中可以进行格式化处理,函数原型较多,示例如下:

   



参考技术A 我用一个sql语句来描述吧, select nvl(name,'无名'), to_char(time,'yyyy,mm,dd,hh,mi,ss') as 日期,decode(fettle,1,'正常',2,'禁用') from mytable;

以上是关于to_char()的用法的主要内容,如果未能解决你的问题,请参考以下文章

oracle 中to_char函数的用法

oracle里nvl,to_char,decode这些函数怎么用啊?

oracle(cast , to_char , to_date )用法

随笔1

sql to_char 日期转换字符串

Oracle中的转换函数