日期:2014-05-16  浏览次数:20453 次

oracle中对时间的操作以及to_char和to_date用法总结


Oracle时间处理有时候to_charto_date两个比较关键的函数,在此总结一下:

 


获取系统当前时间

select sysdate from dual;

 

to_char的用法

select to_char(sysdate,'yyyy.mm.dd') from dual
select to_char(sysdate,'yyyy-mm-dd') from dual
select to_char(sysdate,'yyyy mm dd') from dual
select to_char(sysdate,'yyyy*mm*dd') from dual
select to_char(sysdate,'yyyymmdd') from dual

只要被转换的是一个日期,yyyy,mm,dd中间加不加连接符,加什么连接符都可以。我们可以把空格理解为一个空的连接符。

看一个连接符星号的截图:

 

 

 

to_date的用法

to_date的要求就稍微多了一点。

 

带连接符

select to_date('2012.07.26','yyyy-mm-dd') from dual
select to_date('2012.07.26','yyyy.mm.dd') from dual
select to_date('2012.07.26','yyyy mm dd') from dual

select to_date('2012-07-26','yyyy-mm-dd') from dual
select to_date('2012-07-26','yyyy.mm.dd') from dual
select to_date('2012-07-26','yyyy mm dd') from dual

select to_date('2012.7.1','yyyy-mm-dd') from dual
select to_date('2012.7.1','yyyy.mm.dd') from dual
select to_date('2012.7.1','yyyy mm dd') from dual


所谓带连接符,就是我们to_date的第一个参数的yyyy,mm,dd之间有没有连接符。如果有,那么第二个参数必须有连接符,随便是什么连接符。而且mm,dd不一定要对应位数。07可以对应mm,7同样可以对应mm。我们可以把空格理解为一个空的连接符。

 


不带连接符

select to_date('20120726','yyyymmdd') from dual
select to_date('20120726','yyyy.mm.dd') from dual
select to_date('20120726','yyyy-mm-dd') from dual

不带连接符的必须一一位数对应,第二个字符串带不带连接符均可。07可以匹配mm,但7就不可以匹配mm


①②中情况查出的结果都是带'-'的,无论有无连接符,连接符是什么。看截图: