`
Ben.Sin
  • 浏览: 228487 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle时间操作的一个小技巧

阅读更多

Oracle日期函数有不少,to_date, to_char, trunc,add_month, months_between, next_day等等

 

这些都可以在网上找到一大堆资料,这里就不重复

 

本文提及的时间操作的小技巧是关于oracle时间的加减

 

众所周知,oracle的时间可以直接用来加减操作,比如

 

select sysdate, sysdate - 2 from dual

 

"SYSDATE"    "SYSDATE-2"

-----------------------------------
"19-5月 -09"    "17-5月 -09"

 

很明显,sysdate - 2表示的日期-2,也就是2天前的时间,2天后的时间+2就可以了

 

但是,有的时候我们不需要2天前或者2天后这么长的时间,我们需要2小时前,或者2分钟前的时间

 

但是并没有发现Oracle有关于小时或者分钟直接操作的函数,本人也非常纳闷

 

后来查找资料和朋友们的帮助,才知道日期用于加减操作的时候是一个浮点数,于是做了2个实验

 

实验1:

select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time,
       to_char(sysdate - 2 / 24, 'yyyy-MM-dd hh24:mi:ss') time_before_2_hour
  from dual;

 

 

"CUR_TIME"                       "TIME_BEFORE_2_HOUR"

-------------------------------------------------------------------
"2009-05-19 09:21:58"    "2009-05-19 07:21:58"

 

 

实验2:

select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time,
       to_char(sysdate - 2 / (24 * 60), 'yyyy-MM-dd hh24:mi:ss') time_before_2_minutes
  from dual;

 

 

"CUR_TIME"                      "TIME_BEFORE_2_MINUTES"

---------------------------------------------------------------------
"2009-05-19 09:24:18"    "2009-05-19 09:22:18"

 

结果显示比较明显了,2小时前就是2/24天,2分钟就是2/(24*60)天,oracle日期的加减还是day上的加减,不过他是一个浮点数,所以转换成日期之后实际上就是时间上的加减。

分享到:
评论

相关推荐

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    如何计算数据块中某个字段的位置优化小技巧 如何计算索引块中某个字段的位置优化小技巧 自己动手写一个dul优化小技巧 bootstrap$的访问优化小技巧 unloadBlock函数优化小技巧 unloadRow函数5月29日 突破困局优化小...

    Oracle数据库管理员技术指南

    指定一个查询 3.4.4 导出/导入预计算优化程序统计 数据 3.4.5 可移动表空间 3.5 回顾 第4章 设计高可用性数据库 4.1 如何发现和保护“致命的弱点” 4.2 复用数据库控制文件 4.3 在硬件级上镜像控制文件 ...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    他认为对于SQL的学习是永无止境的,相信每一个查询Oracle数据库的人都需要精通SQL语言,才能写出高效的查询。他参与本书的编写就是为了帮助别人实现这一目标。 目录 封面 -11 封底 -10 扉页 -9 版权 -8 版权声明 -7...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    Oracle8i_9i数据库基础

    §4.1.2 创建一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1 创建实体视图 131 §4.2.2 创建实体视图日志 137 §4.2.3 修改实体视图 139 §4.2.4 ...

    6年javaEE开发的Word资料合集

    详细解释的 Java面试题 最小函数依赖 在数据库中实现base64编码和解码 java servlet总结 java的时间操作 画Web流程图的一点心得 深入Java核心 Java内存分配原理精讲 JAVA调用存储过程详解 经典SQL语句大全 使用...

    jdbc连接数据库的方式2

    如果利用Oracle的面向对象的技术,可以通过创建一个新的数据库对象类型在数据库中模仿其数据和操作,然后使用JPublisher等工具生成自己的Java bean类。如果使用这种方式,不但Java应用程序可以使用应用软件的对象...

    C#编程经验技巧宝典

    72 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何把一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ...

    SQL必知必会(第3版)--详细书签版

    15.2 从一个表复制到另一个表 100 15.3 小结 101 第16章 更新和删除数据 102 16.1 更新数据 102 16.2 删除数据 104 16.3 更新和删除的指导原则 105 16.4 小结 106 第17章 创建和操纵表 107 17.1 创建表 107...

    Toad 使用快速入门

    和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译到当前光标、从光标开始编译。在运行出现错误时,存储过程停止到有问题的语句。用户可以使用快捷...

    php网络开发完全手册

    17.4.4 创建一个有时间限制的Cookie 291 17.4.5 创建一个有范围限制的Cookie 292 17.4.6 删除Cookie 292 17.4.7 浏览器重定向 292 17.4.8 Cookie的常见问题 293 17.5 Cookie应用实例——登录验证 293 17.5.1 HTML...

    计算机实习日记

    技术部的软件安装维护工作虽然是企业部门运营的一个小侧面,但关系到企业在广大客户心目中的形象,关系到企业参与全国范围的计算机软件销售竞争的魄力及品牌亲和力。 虽然我之前对计算机软件这方面的知识有所了解,...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    网站数据库设计.docx

    许多软件考虑精细,例如ORACLE数据库为后台数据库的ORACLE公司的ERP软件解决方案,就没有考虑到中国的国情,不但应用界面分类复杂,而且在工作业务繁忙的时候,由于操作复杂往往还适得其反,到耽误了工作,惹得领导...

    数据库操作语句大全(sql)

    3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段 alter table tablename --添加一个自增列 ...

Global site tag (gtag.js) - Google Analytics