Oracle日期函数学习时,在教程有几个实例如下:
Months_between(’01-sep-95’, ’11-jan-94’)
结果是:19.6774194
Add_months 在指定的月份上面增加相应得月份
例如:
Add_months(’11-jan-94’, 6)
结果是:11-jul-94
Next_day 计算规定日期的后一个特定日期
例如:
Next_day(’01-sep-95’, ‘Friday’ )
结果是:
08-sep-95
Last_day 指这个月最后一天
例如:
Last_day(’01-feb-95’)
然而在SQL*plus输入这些函数执行时,却总得不到正确的结果,因为日期的格式无法识别。正确的用法应该如下:
select MONTHS_BETWEEN('24-2月-2010','24-2月-2010') from dual。这样写很不方便,为了避免出现这样的问题,在自己书写日期时,最好用自己喜欢的方式书写,并用to_date函数指定格式如:
select MONTHS_BETWEEN(to_date('20100224','yyyymmdd'),to_date('20100524','yyyymmdd')) from dual
这里涉及到一个to_date函数,它将输入的字符串序列,转换为指定格式的日期函数,由此可得其它更为全面的实例为:
1.ADD_MONTHS
增加或减去月份
SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;