oracle 12c to_char 函数(1) 日期-字符串
程序员文章站
2022-04-21 15:02:58
...
oracle 12c 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。 | 21 | 21 | select TO_CHAR(sysdate,’SCC’) from dual; |
SYYYY / SYYY | 四位数年份。在S的情况下,在BC的日期开始时加上一个减号。 | 2018 | 2018 | select TO_CHAR(sysdate,’SYYYY’) from dual; |
YYY / YY /Y | 年份三位数表示,两位数,一位数表示 | 18 | 18 | select TO_CHAR(sysdate,’YY’) from dual; |
SYEAR / YEAR | 年拼写出来。在S的情况下,在BC的日期的开始附加一个减号( - )。 | TWENTY EIGHTEEN | TWENTY EIGHTEEN | select TO_CHAR(sysdate,’SYEAR’) from dual; |
RR | 年后面两位数。 | 18 | 18 | select TO_CHAR(sysdate,’RR’) from dual; |
Q | 一年的四季 | 2 | 2 | select TO_CHAR(sysdate,’Q’) from dual; |
MM | 月两位数表示 | 06 | 06 | select TO_CHAR(sysdate,’MM’) from dual; |
MONTH | 长的月份表示(9个字以内) | 6月 | JUNE | select TO_CHAR(sysdate,’MONTH’) from dual; |
MON | 简略的月份表示(3个字以内) | 6月 | JUN | select TO_CHAR(sysdate,’MON’) from dual; |
RM | 使用罗马数字表示月份 | VI | VI | select TO_CHAR(sysdate,’RM’) from dual; |
WW / W | WW 表示年过去的周 W 表示月过去的周 | 23 | 23 | select TO_CHAR(sysdate,’WW’) from dual; |
DDD / DD / D | 年/月/周 过去的天数 | 155 | 155 | select TO_CHAR(sysdate,’DDD’) from dual; |
DAY | 星期表示(9字以内) | 月曜日 | MONDAY | select TO_CHAR(sysdate,’DAY’) from dual; |
DY | 星期省略表示(3字以内) | 月 | MON | select TO_CHAR(sysdate,’DY’) from dual; |
IW | ISO基准下的,一年过了几周 | 23 | 23 | select TO_CHAR(sysdate,’IW’) from dual; |
AM / PM | 时间为午前还是午后 | 午後 | PM | select TO_CHAR(sysdate,’AM’) from dual; |
A.M./ P.M. | 用A.M.或者P.M.形式表示(日语环境不变) | 午後 | PM | select TO_CHAR(sysdate,’AM’) from dual; |
HH/HH24/HH12 | 时间表示 | 04 | 04 | select TO_CHAR(sysdate,’HH’) from dual; |
时间表示24小时制 | 16 | 16 | select TO_CHAR(sysdate,’HH24’) from dual; | |
时间表示12小时制 | 04 | 04 | select TO_CHAR(sysdate,’HH12’) from dual; | |
MI | 分(0-59) | 26 | 26 | select TO_CHAR(sysdate,’MI’) from dual; |
SS | 秒(0-59) | 02 | 02 | select TO_CHAR(sysdate,’SS’) from dual; |
SSSSS | 早上0时过去的秒数(0-86399) | 59318 | 59318 | select 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 june | select TO_CHAR(sysdate,’DDTH “of” month’) from dual; |
SP | 数字以完整拼法表示 | FOUR of 6月 | FOUR of june | select TO_CHAR(sysdate,’DDSP “of” month’) from dual; |
SPTH/THSP | 序数以完整拼写表示 | FOURTH of 6月 | FOURTH of june | select 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
上一篇: 轻松几步上手Swager
推荐阅读
-
oracle 日期函数集合(集中版本)第1/2页
-
Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
-
Oracle to_char 日期转换字符串语句分享
-
Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
-
[学习笔记] Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数
-
oracle 日期函数集合(集中版本)第1/2页
-
oracle 日期函数集合(集中版本)第1/2页
-
Oracle函数(字符串中搜索字符位置(全角算1字符))
-
Oracle to_char 日期转换字符串语句分享
-
Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页_Oracl