oracle 12c to_char 函数(1) 日期-字符串

oracle 12c to_char 函数 日期-字符串

TO_CHAR 函数,数据转换为文字形式,如下图
to_char类型装换

TO_CHAR() 日期型到字符型

作用
to_char 中的参数为日期,可以将日期转为特定格式的字符串类型
写法

    TO_CHAR(日期[,'日期形式'][,NLS参数])
    /* @param  日期  需要变化的日期数
    *  @param '日期形式' 变化为那种形式(可省略)
    *  @param NLS参数关于date的系统环境指定(可省略)
    *  @return 字符串

日期形式表

此处以sysdate 为列进行测试

select sysdate from dual;
SYSDATE
-----------
2018/06/04
元素说明日语环境英语环境测试语句
SCC / CC世纪。如果四位数年份的最后两位数字是01到99(包括01和99),则该世纪是该年份的前两位数字加1。如果四位数年份的最后两位数字是00,则该世纪等于该年份的前两位数字。例如,2002年返回21,2000年返回20。2121select TO_CHAR(sysdate,’SCC’) from dual;
SYYYY / SYYY四位数年份。在S的情况下,在BC的日期开始时加上一个减号。20182018select TO_CHAR(sysdate,’SYYYY’) from dual;
YYY / YY /Y年份三位数表示,两位数,一位数表示1818select TO_CHAR(sysdate,’YY’) from dual;
SYEAR / YEAR年拼写出来。在S的情况下,在BC的日期的开始附加一个减号( - )。TWENTY EIGHTEENTWENTY EIGHTEENselect TO_CHAR(sysdate,’SYEAR’) from dual;
RR年后面两位数。1818select TO_CHAR(sysdate,’RR’) from dual;
Q一年的四季22select TO_CHAR(sysdate,’Q’) from dual;
MM月两位数表示0606select TO_CHAR(sysdate,’MM’) from dual;
MONTH长的月份表示(9个字以内)6月JUNEselect TO_CHAR(sysdate,’MONTH’) from dual;
MON简略的月份表示(3个字以内)6月JUNselect TO_CHAR(sysdate,’MON’) from dual;
RM使用罗马数字表示月份VIVIselect TO_CHAR(sysdate,’RM’) from dual;
WW / WWW 表示年过去的周 W 表示月过去的周2323select TO_CHAR(sysdate,’WW’) from dual;
DDD / DD / D年/月/周 过去的天数155155select TO_CHAR(sysdate,’DDD’) from dual;
DAY星期表示(9字以内)月曜日MONDAYselect TO_CHAR(sysdate,’DAY’) from dual;
DY星期省略表示(3字以内)MONselect TO_CHAR(sysdate,’DY’) from dual;
IWISO基准下的,一年过了几周2323select TO_CHAR(sysdate,’IW’) from dual;
AM / PM时间为午前还是午后午後PMselect TO_CHAR(sysdate,’AM’) from dual;
A.M./ P.M.用A.M.或者P.M.形式表示(日语环境不变)午後PMselect TO_CHAR(sysdate,’AM’) from dual;
HH/HH24/HH12时间表示0404select TO_CHAR(sysdate,’HH’) from dual;
时间表示24小时制1616select TO_CHAR(sysdate,’HH24’) from dual;
时间表示12小时制0404select TO_CHAR(sysdate,’HH12’) from dual;
MI分(0-59)2626select TO_CHAR(sysdate,’MI’) from dual;
SS秒(0-59)0202select TO_CHAR(sysdate,’SS’) from dual;
SSSSS早上0时过去的秒数(0-86399)5931859318select TO_CHAR(sysdate,’SSSSS’) from dual;

特别注意的点
+ 【/】【-】【(】可以作为连接的符号
+ 当有* 年** 日* 汉字时,需要用双引号

    select TO_CHAR(sysdate,'YYYY"年"MM"年"DD"日"') from dual;
    TO_CHAR(SYSDATE,'YYYY"年"MM"年"DD"日"')
    ------------------------------------
    2018年06年04日 
  • 日期表示形式必须是半角符号,不然会产生错误。

日期时间格式元素的后缀

元素说明日语环境英语环境测试语句
TH数字的序数形式04TH of 6月04TH of juneselect TO_CHAR(sysdate,’DDTH “of” month’) from dual;
SP数字以完整拼法表示FOUR of 6月FOUR of juneselect TO_CHAR(sysdate,’DDSP “of” month’) from dual;
SPTH/THSP序数以完整拼写表示FOURTH of 6月FOURTH of juneselect TO_CHAR(sysdate,’DDSPTH “of” month’) from dual;

特别注意的点

  • 结尾词前面有大小写区别,如果书写为小写形式,显示数据也为小写
/* 1.都为小写*/
select TO_CHAR(sysdate,'ddTHSP "of" month') from dual;
TO_CHAR(SYSDATE,'DDTHSP"OF"MONTH')
----------------------------------
fourth of 6月
/* 2. 开头大写*/
select TO_CHAR(sysdate,'Ddthsp "of" month') from dual;
TO_CHAR(SYSDATE,'DDTHSP"OF"MONTH')
----------------------------------
Fourth of 6月
/* 3. 大写*/ 
select TO_CHAR(sysdate,'DDTHSP "of" month') from dual;
TO_CHAR(SYSDATE,'DDTHSP"OF"MONTH')
----------------------------------
FOURTH of 6月

格式模型修饰符

FM 可以去除数值前面的0,以及字符串后面的无效的空白键。

select ename,to_char(hiredate,'ddTHSP "of" month,YYYY','NLS_DATE_LANGUAGE=AMERICAN'),hiredate
from employees;
ENAME      TO_CHAR(HIREDATE,'DDTHSP"OF"MONTH,YYYY','NLS_DATE_LANGUAGE=AMERICAN') HIREDATE
---------- --------------------------------------------------------------------- -----------
加藤       twenty-eighth of february ,2014                                       2014/02/28
吉田       thirteenth of march    ,2009                                          2009/03/13
鈴木       twenty-sixth of march    ,2000                                        2000/03/26
斉藤       seventeenth of december ,2001                                         2001/12/17

/*加上fm*/
select ename,to_char(hiredate,'fmddTHSP "of" month,YYYY','NLS_DATE_LANGUAGE=AMERICAN'),hiredate
 from employees;

ENAME      TO_CHAR(HIREDATE,'FMDDTHSP"OF"MONTH,YYYY','NLS_DATE_LANGUAGE=AMERICAN') HIREDATE
---------- ----------------------------------------------------------------------- -----------
加藤       twenty-eighth of february,2014                                          2014/02/28
吉田       thirteenth of march,2009                                                2009/03/13
鈴木       twenty-sixth of march,2000                                              2000/03/26
斉藤       seventeenth of december,2001                                            2001/12/17
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值