当前位置: 代码迷 >> Oracle管理 >> 求二个date字段,相差多少个月
  详细解决方案

求二个date字段,相差多少个月

热度:75   发布时间:2016-04-24 04:49:21.0
求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
  相关解决方案