侧边栏壁纸
博主头像
与晚风述往事博主等级

万般皆下品,唯有读书高。

  • 累计撰写 149 篇文章
  • 累计创建 29 个标签
  • 累计收到 19 条评论

目 录CONTENT

文章目录

to_date函数的使用

与晚风述往事
2021-12-25 / 0 评论 / 0 点赞 / 907 阅读 / 1,765 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2021-12-25,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

Oracle中自带有to_date函数,我们可以使用它将char、varchar2、nchar和nvarchar2数据类型的值转换成date数据类型的值。
to_date函数不能直接转换clob数据类型的字符串,但能够通过隐式数据转换作为参数传入。

语法

TO_DATE(char [, fmt [, 'nlsparam' ] ])

说明:

  • char 字段名
  • fmt 转换格式,如果省略,则会使用默认日期格式。默认日期格式由数据库的初始化参数NLS_TERRITORY隐式确定,也可以由参数NLS_DATE_FORMAT显示确定。
  • nlsparam 要转换成date数据类型的字符串的语言。

日期格式模型

该列表仅对部分格式写了说明,对于尚未编写说明的,以后有机会再确定涵义。

元素 说明 备注
-
/
,
.
;
:
"字符串内容"
不进行任何转换,通常用于分割时间,让时间显示的更易于肉眼可见
AD
A.D.
转换为公元前还是公元 经过测试支持字符串“公元””公元前“两种
AM
A.M.
转换为上午还是下午
BC
B.C.
转换为公元前还是公元 经过测试支持字符串“公元””公元前“两种
CC
SCC
转换为世纪。如果4为数字的年份的最后两位数在01到99之间,则世纪显示年度的前两位;否则,则世纪显示当年的前两位数字。 例如:2002年,转换后会显示21;2000年,转换后会显示20
D 转换为星期,显示:1~7 该转换取决于会话的NLS_TERRITORY
DAY 转换为星期,显示:星期一~星期日 Name of the unique constraint definition for the referenced table
DD 转换为月份中的第几天,显示:1~31
DDD 转换为年份中的第几年,显示:1~366
DL 返回长日期,可能显示:xxxx年xx月xx日 星期x 由NLS_DATE_FORMAT参数确定该值的格式
DS 返回短日期,可能显示:xxxx-xx-xx 由NLS_TERRITORY和NLS_LANGUAGE参数确定该值的显示格式
DY 返回星期,显示:星期一~星期日
E 返回时代名称 国内不使用
EE 返回时代的全名称 国内不使用
FF[1..9] 返回秒后面的单位,如果不指定,则以datetime或date类型默认的精度显示。 to_date无法使用此元素,因为它比date精度
FM
FX VARCHAR2(30)
HH
HH12
返回一天中的小时(十二小时制),显示:1~12
HH24 返回一天中的小时(二十四小时制),显示:0~23
IW 返回日历周(一年中的第几周),由ISO-8601标准定义。显示:1-52或1-53
IYYY 返回日历周的4位数年份,由ISO-8601标准定义,显示:xxxx
IYY
IY
I
返回日历周的最后3,2,1位数字,由ISO-8601标准定义,显示:IYY-xxx IY-xx I-x
J
MI 返回分钟,显示:0~59
MM 返回月份,显示:01-12
MON 返回月的缩写名称,显示:1月~12月
MONTH 返回月的缩写名称,显示:1月~12月 跟MON一致
PM
P.M.
返回上午还是下午,显示:上午、下午
Q 返回季度,显示:1~4
RM 返回月份,以罗马数字显示,显示:Ⅰ~Ⅻ
RR
RRRR
SS 返回秒数,显示:0-59
SSSSS
TS 返回短时间格式的时间 此值取决于NLS_TERRITORY和NLS_LANGUAGE参数
TZD 返回夏令日期
TZH
TZM
TZR
WW 返回一年中的第几周,显示:1-53 第一周开始于一年中的第一天,并持续到今年的第七天
W
X
Y,YYY
YEAR
SYEAR
YYYY
SYYYY
返回年份的四位数字、带空格的四位数字,显示:YYYY-四位数的年份,SYYYY-前面带空格的四位数年份
YYY
YY
Y
返回年份的后3位、2位、1位数字,显示:YYY-年份的后三位数字;YY-年份的后两位数字;Y-年份的最后一位数字

案例

假如我这边有这样一张表testa,它的数据如下:
image.png
其中,B字段是varchar2类型的字段。
如果我想要将其转换成date类型,那么我首先要分析存储的类型是否符合时间转换模型的标准。经过简单的一个对比,可以看出该值对应的模型是‘YYYY/MM/DD HH24:MI:SS’,那么我们的SQL可以这样写:

select to_date(b,'yyyy/mm/dd hh24:mi:ss') from testa;

image.png
如此,就能得到date类型的字段。

0

评论区