numtodsinterval and interval for oracle

今天无意间在itpub论坛发现了两个很少用的时间间隔关键字:numtodsinterval or numtoyminterval、 interval。

感觉以后可能会用到,仅以此记录下来。下面是简要的介绍:

一、  语法: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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值