Oracle的日期函数to_char、to_date、add_months、months_between、extract

1.sysdate:显示系统当前日期

select sysdate from dual;

结果:2010-7-1 10:53:49

select sysdate+2 from dual;在当前的时间上加2天,一般不要这么用

结果:2010-7-3 10:56:58


2.顺便提一下to_char(),可以对日期进行格式化:

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

格式化后,结果不是date型了。


3.add_months:对月进行加减操作

select sysdate 原时间,add_months(sysdate,5) 月加5后的时间 from dual;

结果:2010-7-1 11:01:57        2010-12-1 11:01:57

同样可以用to_char进行格式化,在条件判断的时候挺有用的。


4.months_between:计算2个月份之间的差,参数必须是日期类型,前参数-后参数

select months_between(to_date(200906,'yyyymm'),to_date(201006,'yyyymm')) from dual;

结果:-12


5.to_date:将数字或字符串,按严格的格式转换成日期类型

select to_date(20100621,'yyyy:mm:dd') from dual;

结果:2010-6-21

看到结果,可以知道,无论格式怎样,最后都是以“—”分隔,但是,如果你格式这么写'yyyy年mm月dd日',就会报错。


6.extract:找出日期属性的对应字段值,extract(data_field from date),data_field(year,month,day等)

select extract(day from sysdate) from dual;

结果:加入当前日期是2011-07-11,值为11