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