1. 程式人生 > >Oracle中時間日期轉化函式to_date和to_char用法總結

Oracle中時間日期轉化函式to_date和to_char用法總結

  在實際的工作中會經常會用到to_char()、to_date()函式來對時間、日期進行處理。

1、to_char()函式的用法

 1.1、將時間日期按照指定的格式輸出,得到的是字串,而非date型別。

 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()可以得到日期中的年、月、日、時、分
 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()得到的是字串,要查詢具體單日、時、分要特別注意。 

 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、將字串轉換為具體指定的時間日期格式

 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'
 select date'2017-5-1',to_date('20170615','yyyymmdd')from dual; 

 執行輸出結果為:

 2017/5/1	2017/6/15
注:date'2017/5/1' 會提示格式不對。