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
使用實例
1》以12小時制顯示
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小時制顯示
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》得到當前時間的前一分鐘
select to_char(sysdate-1/21/60,'hh24:mi:ss')from dual; to_char(sysdate-1/21/60,'hh24: 15:00:54
4》得到當前時間的后一分鐘
select to_char(sysdate+1/21/60,'hh24:mi:ss')from dual; to_char(sysdate+1/21/60,'hh24: 15:03:53
5》得到當前時間的前一小時
select to_char(sysdate-1/24,'hh24:mi:ss')from dual; to_char(sysdate-1/24,'hh24:mi: 14:03:13
6》得到當前時間的后一小時
select to_char(sysdate+1/24,'hh24:mi:ss')from dual; to_char(sysdate+1/24,'hh24:mi: 16:03:32
7》得到當前時間的后一天
select to_char(sysdate+1,'yyyy-mm-dd')from dual; to_char(sysdate+1,'yyyy-mm-dd'
查詢當前時間的前六個月
select add_months(sysdate,-6) from dual
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' 會提示格式不對。
關于oracle中時間日期轉化函數to_date和to_char的具體使用的文章就介紹至此,更多相關oracle to_date to_char內容請搜索碩編程以前的文章,希望以后支持碩編程!