ADD_MONTHS和numtodsinterval浅析

来源:互联网 发布:手机淘宝商城首页登录 编辑:程序博客网 时间:2024/05/22 06:13
--ADD_MONTHS和numtodsinterval--使用ADD_MONTH内置函数来增加月和年--使用numtodsinterval内置函数来增加小时、分钟和秒--加一个简单的数字增加天--简单实验实例EODA@PROD1> set echo onEODA@PROD1> alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';Session altered.EODA@PROD1> select dt, dt+numtodsinterval(100,'second') from (select to_date('30-jan-2000','dd-mon-yyyy hh24:mi:ss') dt from dual );DT     DT+NUMTODSINTERVAL(1-------------------- --------------------30-jan-2000 00:00:00 30-jan-2000 00:01:40   --增加100秒EODA@PROD1> select dt, dt+numtodsinterval(100,'hour') from (select to_date('30-jan-2000','dd-mon-yyyy hh24:mi:ss') dt from dual );DT     DT+NUMTODSINTERVAL(1-------------------- --------------------30-jan-2000 00:00:00 03-feb-2000 04:00:00   --增加100小时EODA@PROD1> select dt, dt+3 from (select to_date('30-jan-2000','dd-mon-yyyy hh24:mi:ss') dt from dual );DT     DT+3-------------------- --------------------30-jan-2000 00:00:00 02-feb-2000 00:00:00   --增加3天/* ADD_MONTHS函数会对月末日期进行特殊的处理,它实际上会为我们完成日期的舍入。如果向一个有31天的月增加一个月,而下一个月不到31天,那么就会返回下一个月的最后一天。 */EODA@PROD1> select dt, add_months(dt,1) from (select to_date('29-feb-2000','dd-mon-yyyy') dt from dual );DT     ADD_MONTHS(DT,1)-------------------- --------------------29-feb-2000 00:00:00 31-mar-2000 00:00:00  --返回三月的最后一天EODA@PROD1> select dt, add_months(dt,1) from (select to_date('28-feb-2001','dd-mon-yyyy') dt from dual ); DT     ADD_MONTHS(DT,1)-------------------- --------------------28-feb-2001 00:00:00 31-mar-2001 00:00:00EODA@PROD1> select dt, add_months(dt,1) from (select to_date('30-jan-2001','dd-mon-yyyy') dt from dual ) ;DT     ADD_MONTHS(DT,1)-------------------- --------------------30-jan-2001 00:00:00 28-feb-2001 00:00:00  --返回二月的最后一天EODA@PROD1> select dt, add_months(dt,1) from (select to_date('30-jan-2000','dd-mon-yyyy') dt from dual );DT     ADD_MONTHS(DT,1)-------------------- --------------------30-jan-2000 00:00:00 29-feb-2000 00:00:00

0 0