Oracle时间格式转换常见示例
Oracle 时间格式转换可以使用TO_DATE和TO_CHAR函数,以下是一些常见的格式转换示例:
1.将日期字符串转换为日期:
1 | SELECT TO_DATE( '2021-01-31' , 'YYYY-MM-DD' ) FROM DUAL; |
2.将日期转换为字符串:
1 | SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) FROM DUAL; |
3.将日期时间字符串转换为日期时间:
1 | SELECT TO_DATE( '2021-01-31 12:30:00' , 'YYYY-MM-DD HH24:MI:SS' ) FROM DUAL; |
4.将日期时间转换为字符串:
1 | SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) FROM DUAL; |
5.将时间戳转换为日期时间:
1 | SELECT TO_TIMESTAMP( '2021-01-31 12:30:00.123456' , 'YYYY-MM-DD HH24:MI:SS.FF' ) FROM DUAL; |
6.将日期时间转换为时间戳:
1 | SELECT TO_TIMESTAMP( '2023-01-31 12:30:00.123456' , 'YYYY-MM-DD HH24:MI:SS.FF' ) FROM DUAL; |
附 :Oracle中时间日期转化函数to_date和to_char用法总结
在实际的工作中会经常会用到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
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
总结
到此这篇关于Oracle数据库时间格式转换的文章就介绍到这了,更多相关Oracle时间格式转换内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!