系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > oracle > 详细页面

Oracle中时间日期转化函数to_date和to_char的具体使用

时间:2023-10-31来源:系统城装机大师作者:佚名

在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理。

1、to_char()函数的用法

1.1、将时间日期按照指定的格式输出,得到的是字符串,而非date类型。

1
2
3
4
select sysdate,to_char(sysdate,'yyyy-mm-dd')from dual;
select sysdate,to_char(sysdate,'yyyy/mm/dd')from dual;
select sysdate,to_char(sysdate,'yyyymmdd')from dual;
select sysdate,to_char(sysdate,'yyyymmdd hh24:mi:ss')from dual;

运行的输出结果为:

 2017/6/15 17:07:24    2017-06-15
 2017/6/15 17:07:25    2017/06/15
 2017/6/15 17:07:25    20170615
 2017/6/15 17:07:25    20170615 17:07:25

 1.2、用to_char()可以得到日期中的年、月、日、时、分

1
2
3
4
select sysdate,to_char(sysdate,'yyyy')from dual;
select sysdate,to_char(sysdate,'mm')from dual;
select sysdate,to_char(sysdate,'hh24')from dual;
select sysdate,to_char(sysdate,'mi')from dual;

运行的输出结果为:

 2017/6/15 17:09:14    2017
 2017/6/15 17:09:14    06
 2017/6/15 17:09:14    17
 2017/6/15 17:09:14    09

注:to_char()得到的是字符串,要查询具体单日、时、分要特别注意。 

1
2
3
4
select accept_time,to_char(accept_time,'mi') from TMP_WW_0615_GYTS_S2
where to_char(accept_time,'mi')='06' ;
select accept_time,to_char(accept_time,'mi') from TMP_WW_0615_GYTS_S2
where to_char(accept_time,'mi')='6' ;

运行输出结果为:

 2017/6/8 21:06:59    06
 null 

使用实例

1》以12小时制显示

1
2
3
SQL>select to_char(sysdate,'YYYY-MM-DD HH12:MI:SS AM')from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH1
2007-06-29 02:50:06 下午

2》以24小时制显示

1
2
3
SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS AM')from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DDHH2
2007-06-29 15:00:58 下午

3》得到当前时间的前一分钟

1
2
3
select to_char(Sysdate-1/21/60,'HH24:MI:SS')from dual;
TO_CHAR(SYSDATE-1/21/60,'HH24:
15:00:54

4》得到当前时间的后一分钟

1
2
3
select to_char(Sysdate+1/21/60,'HH24:MI:SS')from dual;
TO_CHAR(SYSDATE+1/21/60,'HH24:
15:03:53

5》得到当前时间的前一小时

1
2
3
select to_char(Sysdate-1/24,'HH24:MI:SS')from dual;
TO_CHAR(SYSDATE-1/24,'HH24:MI:
14:03:13

6》得到当前时间的后一小时

1
2
3
select to_char(Sysdate+1/24,'HH24:MI:SS')from dual;
TO_CHAR(SYSDATE+1/24,'HH24:MI:
16:03:32

7》得到当前时间的后一天

1
2
select to_char(Sysdate+1,'YYYY-MM-DD')from dual;
TO_CHAR(SYSDATE+1,'YYYY-MM-DD'

查询当前时间的前六个月

1 select add_months(sysdate,-6) from dual

2、to_date()函数的用法

2.1、将字符串转换为具体指定的时间日期格式

1
2
3
4
select sysdate,to_date('20170615','yyyymmdd')from dual;
select sysdate,to_date('20170615','yyyy-mm-dd')from dual;
select sysdate,to_date('20170615','yyyy/mm/dd')from dual;
select sysdate,to_date('20170615','yyyy-mm-dd hh24:mi:ss')from dual;

运行输出结果为:

 2017/6/15 17:20:27    2017/6/15
 2017/6/15 17:20:27    2017/6/15
 2017/6/15 17:20:27    2017/6/15
 2017/6/15 17:20:27    2017/6/15

注:to_date()得到的日期格式是和系统的日期格式保持一致;

得到的时间为当天的 00 :00:00。

2.2、可以直接使用date'yyyy-mm-dd'

1 select date'2017-5-1',to_date('20170615','yyyymmdd')from dual;

运行输出结果为:

2017/5/1    2017/6/15

注:date'2017/5/1' 会提示格式不对。

分享到:

相关信息

  • Oracle数据库的系统结构

    1.Oracle数据库系统结构概述 2.Oracle数据库存储结构 物理存储结构 控制文件 数据文件 重做日志文件 归档日志文件 Oracle数据库逻辑结构 数据块(Data Block) (盘)区(Extent) 段(Segment) 表空间(Tablespace) 本地管...

    2023-10-31

  • Oracle19c最新版保姆级别最详细的安装配置教程

    windows下的Oracle19c 一、官网下载Oracle19c数据库 二、安装Oracle数据库 1.解压安装包 2.运行setup.exe安装 三、配置 四、安装完Oracle数据库,给scott用户解锁 1.解决Oracle数据库中没有scott账户的问题 2.给scott...

    2023-10-31

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载