首先,感谢这个作者的辛勤汗水给我们带来的总结,因为日期函数操作对平时的使用真的是很常用,所以收藏一下以作后期使用。

原贴地址:http://www.cnblogs.com/xiao-yu/archive/2011/05/24/2055967.html

无论是DATE还是timestamp都可以进行加减操作。
可以对当前日期加年、月、日、时、分、秒,操作不同的时间类型,有三种方法:

1 使用内置函数numtodsinterval增加小时,分钟和秒
2 加一个简单的数来增加天
3 使用内置函数add_months来增加年和月

例:
对当前日期增加一个小时:

SQL> select sysdate, sysdate+numtodsinterval(,’hour’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
-- :: -- ::

对当前日期增加50分种

SQL> select sysdate, sysdate+numtodsinterval(,’minute’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
-- :: -- ::

对当前日期增加45秒

SQL> select sysdate, sysdate+numtodsinterval(,’second’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
-- :: -- ::

对当前日期增加3天

SQL> select sysdate, sysdate+ from dual ;

SYSDATE             SYSDATE+
——————- ——————-
-- :: -- ::

对当前日期增加4个月

SQL> select sysdate, add_months(sysdate,) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
-- :: -- ::

当前日期增加2年

SQL> select sysdate, add_months(sysdate,*) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
-- :: -- ::

timestamp的操作方法与上面类似;
求两个日期之差:
例:求2007-5-23 21:23:34与当前时间之间的差值。

SQL> select sysdate-to_date(’ ::′,’yyyy-mm-dd hh24:mi:ss’) dt from
dual ; DT
———-
1240.01623

如果两个日期直接相减,得到的结果是一个数据型,我们可能想要得到两个日期相差值表现形式为:
**年**月**日 **:**:**

SQL> SELECT NUMTOYMINTERVAL(MONTHS_BETWEEN(DT1, DT2), ‘month’) mon,
numtodsinterval(dt1-(add_months(dt2,trunc(MONTHS_BETWEEN(DT1, DT2)))
),’day’) DAY
FROM (SELECT SYSDATE DT1,
TO_DATE(’ ::′, ‘yyyy-mm-dd hh24:mi:ss’) DT2
FROM DUAL)
; MON DAY
—————- ———————-
+- + ::15.999999999

即:3年 4 个月 21 天 00:40:15.99999999

ORACLE日期加减【转】的更多相关文章

  1. 类型:Oracle;问题:oracle 时间加减;结果:ORACLE 日期加减操作

    ORACLE 日期加减操作 无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinter ...

  2. Oracle 日期加减运算

    -- Start 我们都知道数字可以进行加.减.乘.除等运算.那么,日期可不可以呢?答案是,日期只能进行加.减运算. 在开始操作日期之前,我们先了解一下 Oracle 支持哪些日期数据类型,如下所示: ...

  3. ORACLE 日期加减操作

    无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinterval增加小时,分钟和秒2 ...

  4. oracle 日期相减

    oracle日期相减2012-02-10 12:18--MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_betwe ...

  5. oracle 日期相减 转载

      转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减2012-02-10 12 ...

  6. Delphi日期函数、日期加减

    Delphi里有现成的函数可以实现日期加减,是在DateUtils单元里的. function IncYear(const AValue: TDateTime; const ANumberOfYear ...

  7. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

    获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.ou ...

  8. js日期加减

    先补充下基础知识: var myDate = new Date(); //myDate默认返回当前时间 myDate.getYear(); //获取当前年份(2位) myDate.getFullYea ...

  9. PHP中的日期加减方法示例

    几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数.只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了. 今天要讲的这个例子,需求是这样 ...

随机推荐

  1. 平稳退化,JS和HTML标记分离,极致性能的JavaScript图片库

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  2. C语言基础文件读写操作

    整理了一份C语言的文件读写件操作代码,测试时打开相应的注释即可. #include <stdio.h> #include <stdlib.h> #include <uni ...

  3. C# windows窗体程序打包安装及卸载

    一.新建安装部署项目

  4. Python里的拷贝=====》很容易错误的

    不能直接用 = 复制: import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅 ...

  5. centos7 install mysql

    1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-co ...

  6. 一】Maven入门

    一.简单pom.xml配置文件解析 <?xml version="1.0" encoding = "utf-8"?> <project xml ...

  7. 能够兼容ViewPager的ScrollView

    /** * 能够兼容ViewPager的ScrollView * @Description: 解决了ViewPager在ScrollView中的滑动反弹问题 */ public class Scrol ...

  8. RR 和RC隔离问题

    Sesssion 1: mysql> select @@tx_isolation; +-----------------+ | @@tx_isolation | +--------------- ...

  9. -_-#【Better Code】字符串匹配

    提高 web 应用性能之 JavaScript 性能调优

  10. TRAFFIC LIGHTS POJ 1158

    题目大意: 在Dingilville 城市安排是一种不同寻常的方式,每个交叉路口有一条道路连接,一条道路最多连接两个不同的交叉路口.每个交叉路口不能连接他自己.道路旅行一端到另一端的时间是相同的,任何 ...