numtodsinterval and interval for oracle时间加减函数-转

numtodsinterval and interval for oracle时间加减函数-转

 

一、  语法:NUMTOYMINTERVAL ( n , 'char_expr' )
              char_expr:日期描述,可以是YEAR和MONTH;

  作用:可以将数字转换成相应的日期单位时间

  比如:NUMTOYMINTERVAL ( 1, 'MONTH' ) 表示一个月,注意:此时跟add_months有点区别,后续有例子会讲到。
              NUMTOYMINTERVAL ( 1, 'YEAR' ) 表示一年

 

对于day、hour、minute、second使用的是numtodsinterval函数,方法和numtoyminterval一样。后面可以跟变量

二、interval后面只能用数字

 

下面是举例:

SQL> select add_months (to_date('20110228','yyyymmdd'),1) from dual;

ADD_MONTH
---------
31-MAR-11 

SQL> 
SQL> select add_months(to_date('20110228','yyyymmdd'),-1) from  dual;

ADD_MONTH
---------
31-JAN-11

SQL> 
SQL> 
SQL> select to_date('2007-02-28','yyyy-mm-dd')+numtoyminterval (1,'month') from dual;

TO_DATE('
---------
28-MAR-07 

SQL> select to_date('2007-02-28','yyyy-mm-dd')-numtoyminterval (1,'month') from dual;

TO_DATE('
---------
28-JAN-07


此时,注意跟add_months返回结果的区别。

 

SQL> select to_date('2007-02-28','yyyy-mm-dd')+numtodsinterval(1,'day') from dual;

TO_DATE('
---------
01-MAR-07


SQL> 
SQL> select to_date('2007-02-28','yyyy-mm-dd')+interval '+3' hour from dual;

TO_DATE('
---------
28-FEB-07


SQL> select to_date('2007-02-28','yyyy-mm-dd')+interval '+1' month from dual;

TO_DATE('
---------
28-MAR-07

你可能感兴趣的:(numtodsinterval and interval for oracle时间加减函数-转)