[Oracle]字符串和日期数据类型相互转换的两种方式

版权声明:转载或者引用本文内容请注明来源及原作者 https://blog.csdn.net/a755199443/article/details/88671524

杂技Oracle中日期数据类型有DATE和更为精确的TIMESTAMP两种.
一般来说DATE类型的数据格式为’年-月-日’,TIMESTAMP类型的数据格式为’年-月-日 时:分:秒’
字符串与日期数据互相转换有两种方式:

1. 自动转换
2. 使用转换函数

自动转换

先说一个提取时间日期中数据的函数:
extract(c1 from d1)
【功能】:日期/时间d1中,参数(c1)的值
【参数】:d1日期型(date)/日期时间型(timestamp),c1为字符型(参数)

【示例】

select 
extract(hour from timestamp '2001-2-16 2:38:40 ' ) --小时,
extract(minute from timestamp '2001-2-16 2:38:40 ' ) --分钟,
extract(second from timestamp '2001-2-16 2:38:40 ' ) --秒,
extract(DAY from timestamp '2001-2-16 2:38:40 ' ) --日,
extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) --月,
extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) --年
 from dual;

在这里插入图片描述
以上是将字符串转化为timestamp格式后再提取其中的数据.
当然也可以直接从日期数据中获得数据,如:

select extract(year from sysdate) from dual;

在这里插入图片描述

通过上面这个例子应该已经可以看出字符串自动转化为日期数据的方式:

  • time '年-月-日’
  • timestamp '年-月-日 时:分:秒’

而日期数据自动转为字符串则更为简单,它在任何时候都可以自动转化为字符串.

转换函数

函数的语法为:
TO_DATE(X[,c2[,c3]])
【功能】将字符串X转化为日期型
【参数】c2,c3,字符型
【返回】日期数据类型

【示例】

select to_date('199912','yyyymm') a,
to_date('2000.05.20','yyyy.mm.dd') b,
to_date('2008-12-31 8:31:30','yyyy-mm-dd hh:mi:ss') c,
to_date('2008-12-31 14:31:30','yyyy-mm-dd hh24:mi:ss')
from dual;

在这里插入图片描述
c2字符型用来规定前面字符串X的格式.
注意若想用24小时制则小时的形式为hh24(见d),单单hh是12小时制(见c).

另外日期类型数据转换为字符串则与上述类似,函数为:
to_char(date[,c2[,c3]])

猜你喜欢

转载自blog.csdn.net/a755199443/article/details/88671524