`
hongzhguan
  • 浏览: 272755 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle中日期运算

阅读更多
--获取系统的时间
select sysdate from dual;

--ceil()向上1取整
--floor()向下取整

--得到相差的天数
select (to_date('2012-10-1','YYYY-MM-DD')-to_date('2011-9-11','YYYY-MM-DD')) from dual;
--得到相差的年份===使用相差的月数除以12
select floor(months_between(sysdate,to_date('2010-02-02','yyyy-mm-dd'))/12) from dual;
--得到相差的月=====第一个时间大才能为正
select floor(months_between(sysdate,to_date('2011-9-01','YYYY-MM-DD'))) from dual;



--1、oracle 日期加减
select sysdate,add_months(sysdate,12) from dual;  --日期加一年
/*SYSDATE                   ADD_MONTHS(SYSDATE,12)   
------------------------- -------------------------
25-6月 -09                25-6月 -10               
*/
select sysdate,add_months(sysdate,1) from dual;   --日期加一月
/*
SYSDATE                   ADD_MONTHS(SYSDATE,1)    
------------------------- -------------------------
25-6月 -09                25-7月 -09               
*/
select sysdate,sysdate+1 from dual;               --日期加一天
/*
SYSDATE                   SYSDATE+1                
------------------------- -------------------------
25-6月 -09                26-6月 -09               
*/
select to_char(sysdate,'YYYY-MM-dd hh24:mi:ss') oldtime,
to_char(sysdate+1/24,'YYYY-MM-dd hh24:mi:ss') newtime
from dual;                                        --时间加一个小时
/*
OLDTIME             NEWTIME            
------------------- -------------------
2009-06-25 16:04:23 2009-06-25 17:04:23
*/
select to_char(sysdate,'YYYY-MM-dd hh24:mi:ss') oldtime,
to_char(sysdate+1/24/60,'YYYY-MM-dd hh24:mi:ss') newtime
from dual;                                        --时间加一分钟
/*
OLDTIME             NEWTIME            
------------------- -------------------
2009-06-25 16:06:13 2009-06-25 16:07:13
*/
select to_char(sysdate,'YYYY-MM-dd hh24:mi:ss') oldtime,
to_char(sysdate+1/24/60/60,'YYYY-MM-dd hh24:mi:ss') newtime
from dual;                                        --时间加一秒钟
/*
OLDTIME             NEWTIME            
------------------- -------------------
2009-06-25 16:07:28 2009-06-25 16:07:29
*/

--2、其它
--求每个月最后一天,上篇文章介绍了一个方法:
select trunc(add_months(sysdate,1),'mm')-1 from dual;
--30-6月 -09
--其实oracle 提供了相应的函数last_day
select last_day(sysdate) from dual;
/*
LAST_DAY(SYSDATE)        
-------------------------
30-6月 -09    
*/
select last_day(to_date('2008-03-01','yyyy-mm-dd')) from dual;
/*
LAST_DAY(TO_DATE('2008-03-01','YYYY-MM-DD'))
-------------------------
31-3月 -08     
*/
--求每个月的第一天,上篇文章介绍了一个方法:
select trunc(sysdate,'mm') from dual;
--01-6月 -09
--我们也使用LAST_DAY和函数实现:求上一个月的最后一天然后再在加一天,就是当月的第一天
select last_day(add_months(sysdate,-1))+1 fd from dual;
/*
FD                       
-------------------------
01-6月 -09      
*/
--next_day用法:使用中文标示工作日
select next_day(sysdate,'星期五') "下周五" from dual;
/*
下周五                      
-------------------------
03-7月 -09  
*/
--使用数字标示工作日:1表示的是周日,2表示的是周一,3表示的是周二,依此类推。
select next_day(sysdate,6) "下周五" from dual;
/*
下周五                      
-------------------------
03-7月 -09  
*/
分享到:
评论

相关推荐

    Oracle时间日期操作

    Oracle 时间日期操作是 Oracle 数据库中的一种常用的操作类型,它可以对数据库中的日期和时间进行各种处理和计算。以下是 Oracle 时间日期操作的一些常见知识点: 1. 获取当前日期和时间:使用 `sysdate` 函数可以...

    Oracle中的日期处理总结

    #### 四、日期运算 1. **`LAST_DAY(date)`**:该函数用于获取指定日期所在月份的最后一天。例如: ```sql SELECT LAST_DAY(SYSDATE) FROM DUAL; ``` 2. **`NEXT_DAY(date, day)`**:该函数用于获取指定日期...

    ORACLE常用日期函数集合

    ### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。

    Oracle中日期格式字段处理.docx

    4. 日期和时间的计算:在 Oracle 中,可以使用加减乘除四则运算符对日期和时间进行计算。例如,SYSDATE + 1 将当前日期加一天。 5. 日期和时间的比较:在 Oracle 中,可以使用比较运算符来比较日期和时间。例如,...

    oracle中日期操作

    以上这些SQL语句展示了Oracle中对日期的多种处理方式,包括基本的日期运算、特殊日期计算以及复杂的工作日计算等。这些操作在日常的数据库管理和数据查询中非常实用,有助于高效地处理时间相关的业务逻辑。了解并...

    Oracle查询优化日期运算实例详解

    Oracle查询优化是数据库管理中的重要环节,特别是在处理日期运算时,优化显得尤为关键,因为日期操作经常出现在业务逻辑中,不恰当的使用可能导致性能瓶颈。本文将深入探讨Oracle中的日期运算实例及其优化策略。 ...

    oracle 日期处理 总结

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

    oracle函数得到下一个法定工作日期

    总结,Oracle中获取下一个法定工作日期涉及对日期的运算、节假日表的管理以及PL/SQL编程。通过创建自定义函数,我们可以灵活地处理各种复杂的日期逻辑,满足业务需求。希望这篇文章对你理解和使用Oracle函数来处理...

    oracle日期字符串的相互转换

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

    oracle常用日期函数

    在Oracle数据库中,日期函数是处理时间数据的关键工具,它们帮助我们进行日期的计算、转换以及格式化。以下是对标题和描述中提到的一些常用日期函数的详细解释: 1. **months_between** 函数:这个函数返回两个日期...

    最新Oracle中日期格式字段处理.docx

    通过理解并熟练应用这些Oracle日期处理技术,可以更有效地管理和分析日期相关的数据,提高SQL查询的效率和准确性。在实际工作中,结合NLS_DATE_FORMAT和NLS_DATE_LANGUAGE参数,可以更好地适应不同的日期显示需求和...

    oracle关于日期时间

    ### Oracle日期时间处理概述 Oracle数据库提供了丰富的日期时间处理功能,包括日期格式化、日期计算、日期范围查询等。通过SQL语句,用户可以方便地对日期进行各种操作。以下将详细介绍如何在Oracle中高效地处理...

    Oracle日期之二

    本文将深入探讨"Oracle日期之二"这一主题,基于提供的标签和压缩包文件内容,我们来详细讨论Oracle中的日期操作。 在Oracle中,日期类型是最基本的数据类型之一,用于存储日期和时间信息。在SQL查询和PL/SQL程序中...

    oracle内部日期查询.pdf

    总结来说,Oracle在处理日期时间方面提供了丰富的功能和灵活性,用户可以根据需要调整显示格式,进行各种复杂的日期运算,并能方便地进行日期时间的插入和查询。理解并熟练掌握这些知识点对于日常的数据库操作和开发...

    oracle 日期转换相关sql

    ### Oracle 日期转换...以上示例涵盖了 Oracle 日期处理的关键方面,包括日期格式化、日期间的运算、字符串转日期、日期截断以及性能测试。这些技术在实际工作中非常有用,能够帮助开发者更高效地处理日期相关问题。

    oracle 表达式

    在Oracle数据库中,表达式是用于计算或比较值的组合,它们可以由常量、变量、函数、操作符以及子查询组成。Oracle SQL中的表达式主要用于SELECT、INSERT、UPDATE和DELETE语句,以定义列的值、筛选行或计算新值。在本...

    Oracle 日期处理大全

    Oracle数据库在处理日期时提供了丰富的函数...以上是Oracle日期处理的一些基本技巧和高级应用,它们在实际数据库查询和报表生成中非常有用。理解并熟练运用这些知识点,可以有效提升在Oracle环境中处理日期数据的能力。

    oracle 日期 加减方法.pdf

    这些日期运算在日常的数据处理和分析中非常常见,理解并熟练掌握这些函数和操作,能帮助我们在SQL查询中更高效地处理时间相关的逻辑。在Oracle中,日期运算的灵活性和强大功能使得开发者可以轻松处理各种复杂的日期...

    离散制造业的MRP运算执行代码(ORACLE存储过程)

    ### 离散制造业的MRP运算执行代码详解(ORACLE存储过程) #### 一、概述 在离散制造业中,物料需求计划(Material Requirements Planning, MRP)是生产管理的重要组成部分,它通过精确计算物料需求量及时间来指导...

Global site tag (gtag.js) - Google Analytics