日期:2014-05-17  浏览次数:20900 次

求2个date字段,相差多少个月?

select etime-stime as 相差的天数 from aaa

怎样才能计算stime和etime相差的月数呢?

------解决方案--------------------
SELECT MONTHS_BETWEEN(TO_DATE('2013/05/08 11:57:13',
                              'YYYY-MM-DD HH24:MI:SS'),
                      TO_DATE('2012/01/08 11:57:13', 'YYYY-MM-DD HH24:MI:SS'))
  FROM DUAL
------解决方案--------------------
与日期相关的几个非常常用的函数:
ADD_MONTHS


SQL> select add_months(to_date('2013-01-01','yyyy-mm-dd'),4) as newMonth from dual;

NEWMONTH
--------------
01-5月 -13


LAST_DAY 

SQL> select last_day(to_date('2013-01-01','yyyy-mm-dd')) as lastday from dual;

LASTDAY
--------------
31-1月 -13

MONTHS_BETWEEN(date2,date1)

SQL> edit
已写入 file afiedt.buf

  1  select months_between(to_date('2013-01-01','yyyy-mm-dd'),
  2      to_date('2013-12-01','yyyy-mm-dd')) as monthsBetween
  3* from dual
SQL> run
  1  select months_between(to_date('2013-01-01','yyyy-mm-dd'),
  2      to_date('2013-12-01','yyyy-mm-dd')) as monthsBetween
  3* from dual

MONTHSBETWEEN
-------------
          -11

          
NEXT_DAY(date,day)

SQL> select next_day(to_date('2013-01-08','yyyy-mm-dd'),'星期四') from dual;

NEXT_DAY(TO_DA
--------------
10-1月 -13