`
wendy~QQ
  • 浏览: 34462 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

oracle 日期加减方法_

阅读更多
最近需要写一个时间的相加减的sql语句,于是就上网看了下相关的知识,然后自己整理了下一些 关于时间加减和获取相关时间的知识!
加法
select sysdate,add_months(sysdate,12) from dual;       --加1年
select sysdate,add_months(sysdate,1) from dual;        --加1月
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1星期
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1天
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1小时
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1分钟
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1秒
减法则相反用减的就OK了
但是我发现一个问题,就是我用系统日期减去系统日期会等于0,但是如果是减去一个to_date()的日期格式就不是等于0了,我也不知道为什么o(╯□╰)o
select sysdate,sysdate-sysdate from dual;--结果是:2011-7-13 16:45:35 和 0
select sysdate,sysdate-to_date('2011-7-1 16:28:00','yyyy-mm-dd HH24:MI:SS') from dual;
--结果是2011-7-13 16:46:31  和  12.0128587962963
日期与日期之间不能相加 ,但是日期与数字就可相加SQL> select sysdate+1 from dual; 
日期与日期可以相减 SQL>  select  sysdate-sysdate from dual; 
Last_Day(D)返回包含日期D的月份的最后一天的日期,这个要注意时间要是默认格式的,不然会报错的!
select * from nls_session_parameters where parameter=upper('nls_date_format');--查出系统默认格式是:DD-MON-RR
select last_day('02-12月-09') from dual; --正确(为什么要加个“月”,我也不知道,反正就是那个“DD-MON-RR”格式的就是要这样写)
select last_day('20090202') from dual;--错误,不能自动将字符转换成date
alter session set nls_date_format='yyyymmdd'; --修改默认格式
select last_day('20090202') from dual;--设置了默认格就可以运行了

Months_Between(D1,D2)返回D1、D2之间的月份数目,D1<D2那么结果为正数,反之为负
select Months_Between('02-12月-09','02-2月-09') from dual; --结果:10
select Months_Between('02-2月-09','02-12月-09') from dual; --结果:-10

New_Time(D,Z1,Z2)        返回时区Z1里时间为D时Z2时区的时间
select New_Time('02-12月-11','AST','HST') from dual;--返回:2011-12-1 18:00:00
在区域 z1 中的日期和时间为 d 时,函数将返回区域 z2 中的日期和时间。变元 z1 和 z2 可以是以下任何一个文本字符串:
AST 或 ADT 大西洋标准时间或夏令时间
BST 或 BDT 白令海标准时间或夏令时间
CST 或 CDT 中央标准时间或夏令时间
EST 或 EDT 东部标准时间或夏令时间
GMT 格林威治标准时间
HST 或 HDT 阿拉斯加 - 夏威夷标准时间或夏令时间
MST 或 MDT 山区标准时间或夏令时间
NST 纽芬兰标准时间
PST 或 PDT 太平洋标准时间或夏令时间
YST 或 YDT 育空标准时间或夏令时间

NEXT_DAY(D, X)   时间点D开始,下一個星期几的日期(星期日=1 星期一= 2 星期二=3,星期三=4  星期四=5  星期五 = 6  星期六 = 7)。返回值具有与变元D 相同的小时数、分钟数和秒数构成。
例如:select NEXT_DAY('18-7月-11', 2) from dual;--返回:2011-7-25也就是周一

Round(D,F)  日期D按照格式F进行舍入,对日期的四舍五入运算,月的四捨五入以每月的15号为准 ,年的四捨五入以每年6月为准。
select sysdate, ROUND(sysdate,'year') aa from dual;  --返回:2012-1-1
F可以是以下几个:
SS 秒;MI 分钟;HH 小时;DD /day  天 ;MM /mouth    月份;YY/year    年
如果是用day, nouth,year 一定要用小写才行

Trunc(D,F)  按照格式F截断时间D ,trunc也可以对于number进行截断,它和round类似,区别是,round是四舍五入的,但是trunc是直接截断,例如
select sysdate, TRUNC(sysdate,'yyyy') aa from dual;  --返回:2011-1-1
分享到:
评论

相关推荐

    oracle_日期_加减方法

    以下是Oracle中关于日期加减的一些主要知识点: 1. **加法操作**: - `ADD_MONTHS(date, months)`:此函数用于将给定的日期加上指定的月数。例如,`ADD_MONTHS(sysdate, 12)`会返回当前日期之后一年的日期。 - `...

    oracle 日期 加减方法.pdf

    - Oracle允许我们以天、小时、分钟或秒为单位进行精确的日期加减,如`sysdate + 1/24`表示加1小时,`sysdate + 1/24/60`表示加1分钟,`sysdate + 1/24/60/60`表示加1秒。 6. **系统当前日期**: - `SYSDATE`:...

    oracle 日期 加减方法.docx

    以下将详细介绍Oracle中关于日期加减的一些常用方法。 1. **加法与减法** 在Oracle SQL中,我们可以直接将日期与整数相加或相减来改变日期。例如,`sysdate + 1` 表示当前系统日期往后推一天,而`sysdate - 1`则...

    Oracle日期函数练习

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

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

    1. ADD_MONTHS(d, n) 日期加减 ADD_MONTHS 函数将日期 d 加上 n 个月,该函数常用于计算指定日期的未来或过去日期。 示例代码: ```sql SELECT SYSDATE AS This_Day, ADD_MONTHS(SYSDATE, 1) AS Next_Day FROM ...

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

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

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

    Oracle 日期处理全集 Oracle 日期处理是数据库中的一种重要功能,它提供了多种日期处理函数,能够满足不同业务场景下的日期处理需求。下面我们将对 Oracle 日期处理函数进行详细介绍。 add_months 函数 add_...

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

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

    oracle日期处理完全版

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

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

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

    Oracle时间日期操作

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

    oracle 日期处理 总结

    以下是对Oracle日期处理的一些关键知识点的详细说明: 1. **将时间字符串转换为时间** Oracle提供了`to_date()`函数将字符串转换为日期类型。这个函数需要两个参数:要转换的字符串和匹配的转换格式。例如,`to_...

    ORACLE常用日期函数集合

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

    oracle日期字符串的相互转换

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

    oracle 日期的处理大全

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

    Oracle日期时间(DateTime)操作

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

    Oracle_plsql常用方法汇总

    2. ADD_MONTHS:返回日期加(减)指定月份后(前)的日期 3. LAST_DAY:返回该月最后一天的日期 4. MONTHS_BETWEEN:返回日期之间的月份数 5. NEXT_DAY:返回下一个星期的日期 6. ROUND:舍入到最接近的日期 7. TRUNC:...

    数据库oracle中日期处理

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

Global site tag (gtag.js) - Google Analytics