`
lfc_jack
  • 浏览: 144788 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

ORACLE 日期加减操作

 
阅读更多

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

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

例:
对当前日期增加一个小时:
SQL> select sysdate, sysdate+numtodsinterval(1,’hour’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:38:19 2010-10-14 22:38:19
对当前日期增加50分种
SQL> select sysdate, sysdate+numtodsinterval(50,’minute’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:39:12 2010-10-14 22:29:12
对当前日期增加45秒
SQL> select sysdate, sysdate+numtodsinterval(45,’second’) from dual ;

SYSDATE             SYSDATE+NUMTODSINTE
——————- ——————-
2010-10-14 21:40:06 2010-10-14 21:40:51
对当前日期增加3天
SQL> select sysdate, sysdate+3 from dual ;

SYSDATE             SYSDATE+3
——————- ——————-
2010-10-14 21:40:46 2010-10-17 21:40:46
对当前日期增加4个月
SQL> select sysdate, add_months(sysdate,4) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
2010-10-14 21:41:43 2011-02-14 21:41:43

当前日期增加2年
SQL> select sysdate, add_months(sysdate,12*2) from dual ;

SYSDATE             ADD_MONTHS(SYSDATE,
——————- ——————-
2010-10-14 21:42:17 2012-10-14 21:42:17

timestamp的操作方法与上面类似;
求两个日期之差:
例:求2007-5-23 21:23:34与当前时间之间的差值。
SQL> select sysdate-to_date(’20070523 21:23:34′,’yyyy-mm-dd hh24:mi:ss’) dt from
dual ;

DT
———-
1240.01623
如果两个日期直接相减,得到的结果是一个数据型,我们可能想要得到两个日期相差值表现形式为:
**年**月**日 **:**:**
SQL> SELECT NUMTOYMINTERVAL(MONTHS_BETWEEN(DT1, DT2), ‘month’) mon,
2         numtodsinterval(dt1-(add_months(dt2,trunc(MONTHS_BETWEEN(DT1, DT2)))
),’day’) DAY
3    FROM (SELECT SYSDATE DT1,
4                 TO_DATE(’20070523 21:23:34′, ‘yyyy-mm-dd hh24:mi:ss’) DT2
5          FROM DUAL)
6 ;

MON                  DAY
—————-     ———————-
+000000003-04        +000000021 00:40:15.999999999

即:3年 4 个月 21 天 00:40:15.99999999
分享到:
评论

相关推荐

    oracle_日期_加减方法

    Oracle提供了丰富的函数来帮助用户对日期进行加减操作,这些功能强大且灵活的函数使得开发者能更精确地处理时间数据。以下是Oracle中关于日期加减的一些主要知识点: 1. **加法操作**: - `ADD_MONTHS(date, ...

    oracle 日期 加减方法.pdf

    Oracle数据库在处理日期运算时提供了丰富的函数和方法,使得对日期进行加减操作变得非常方便。在Oracle中,日期不仅可以与整数进行加减运算,还可以与其他日期对象进行比较和计算。以下是一些核心的Oracle日期操作...

    oracle 日期 加减方法.docx

    Oracle数据库在处理日期运算时提供了丰富的函数和方法,使得对日期进行加减操作变得非常方便。在Oracle中,日期不仅可以与数字进行加减,还可以通过特定的函数进行复杂的日期计算。以下将详细介绍Oracle中关于日期加...

    ORACLE中的日期加减操作实例介绍

    在Oracle数据库中,日期加减操作是日常查询和数据分析中不可或缺的部分。本篇文章将深入探讨如何在Oracle中进行日期和时间的加减操作,并通过实例详细介绍如何增加小时、分钟、秒、天、月以及年。 首先,Oracle支持...

    Oracle时间日期操作

    4. 日期和时间的计算:使用 `add_months` 函数可以对日期进行月份的加减运算,例如:`add_months(sysdate, -5)` 可以将当前日期减去 5 个月。 5. 日期和时间的比较:使用 `>`、`、`=` 等运算符可以对日期和时间进行...

    Oracle日期函数练习

    Oracle 日期函数是 Oracle 数据库中的一组功能强大且广泛使用的函数,它们可以对日期进行各种操作和计算,本次练习涵盖了 Oracle 中常用的日期函数,包括获取当前系统时间、对日期的月进行加减、获取给定日期所在月...

    oracle日期处理全集-日期加减全活儿.doc.docx

    Oracle 日期处理全集 Oracle 日期处理函数是 Oracle 中的一组强大的函数,用于处理日期和时间相关的操作。...这些函数可以用来实现各种日期和时间相关的操作,例如日期加减、日期比较、日期格式转换等。

    oracle日期处理全集-日期加减全活儿.pdf

    Oracle数据库在日期处理方面提供了丰富的函数,这些函数可以帮助开发者对日期进行各种操作,例如加减、格式转换、取最大最小值等。以下是基于提供的文件内容所介绍的一些关键知识点: 1. **add_months(d,n)**: 这个...

    oracle日期处理完全版

    - 示例查询展示了如何找出指定日期范围内非周末的天数,通过 `rownum` 和日期加减计算,以及 `to_char` 获取星期几并排除 '1'(星期一)和 '7'(星期日)。 9. **月份间隔计算**: - `months_between` 函数用于...

    Oracle日期时间(DateTime)操作

    Oracle数据库提供了丰富的日期时间操作功能,从简单的日期加减到复杂的日期时间格式化和计算,这些功能使得数据处理变得更加灵活和强大。熟练掌握这些日期时间操作技巧,对于进行高效的数据分析和管理至关重要。无论...

    oracle 日期处理 总结

    Oracle允许在日期上进行加减操作,例如`date + interval '1' day`表示在日期上增加一天,`date - interval '3' hour`表示减去三小时。 4. **求某天是星期几** 可以使用`to_char(date, 'DY')`来获取日期对应的星期...

    ORACLE常用日期函数集合

    - 可以直接对日期进行加减运算。 ```sql SELECT sysdate + 5 FROM dual; -- 向当前日期增加5天 ``` #### 四、总结 以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,...

    oracle日期字符串的相互转换

    ### Oracle日期与字符串相互转换详解 #### 一、概述 在Oracle数据库中,日期与字符串之间的转换是一项常用且重要的操作。正确地进行日期与字符串之间的转换对于数据处理、查询优化等方面有着不可忽视的作用。本...

    数据库oracle中日期处理

    使用`+`和`-`运算符可以进行日期的加减,例如`date + interval '1' day`表示日期加一天。 6. **日期转换**: - `TO_CHAR(date, format_mask)`:将日期转换为字符格式。 - `TO_DATE(char, format_mask)`:将字符...

    Oracle日期之二

    Oracle支持日期加减运算,如`SELECT SYSDATE - 7 FROM DUAL;`将返回一周前的日期。也可以直接与数字进行加减,如`SELECT SYSDATE + 15 FROM DUAL;`表示未来15天的日期。 4. **日期格式化** Oracle的`TO_CHAR`函数...

    oracle 日期的处理大全

    以上只是Oracle日期处理的一部分,还有许多其他函数和技巧,如`ADD_MONTHS`、`LAST_DAY`、`NEXT_DAY`等,它们可以帮助处理日期的加减、获取月末日期、下一个工作日等功能。理解并熟练掌握这些函数对于数据库查询和...

    oracle中日期的相关操作

    - **日期加减**: Oracle提供了方便的方法来增加或减少日期: - 增加5秒: `SYSDATE + (5/24/60/60)` - 增加5分钟: `SYSDATE + (5/24/60)` - 增加5小时: `SYSDATE + (5/24)` - 增加5天: `SYSDATE + 5` - 减少5个...

    Oracle时间日期操作.pdf

    Oracle数据库在处理时间日期操作时提供了丰富的函数和表达式,这些功能强大且灵活,能够满足各种日期时间的计算和格式化...通过这些函数和表达式,开发者可以轻松地进行日期的加减、比较、格式化以及工作日计算等操作。

    oracle内部日期查询.pdf

    日期加减操作在Oracle中默认以天为单位。例如,要为当前时间加上30分钟,可以使用表达式`sysdate + (30/24/60)`,这里的30/24/60将分钟转换为天数。同样,减去30分钟只需添加负号,如`sysdate + (-30/24/60)`。 ...

Global site tag (gtag.js) - Google Analytics