`
piperzero
  • 浏览: 3475570 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Oracle中如何计算时间差

 
阅读更多
计算时间差是Oracle DATA数据类型的一个常见问题。Oracle支持日期计算,你可以创建诸如“日期1-日期2”这样的表达式来计算这两个日期之间的时间差。

一旦你发现了时间差异,你可以使用简单的技巧来以天、小时、分钟或者秒为单位来计算时间差。为了得到数据差,你必须选择合适的时间度量单位,这样就可以进行数据格式隐藏。

使用完善复杂的转换函数来转换日期是一个诱惑,但是你会发现这不是最好的解决方法。

round(to_number(end-date-start_date))- 消逝的时间(以天为单位)

round(to_number(end-date-start_date)*24)- 消逝的时间(以小时为单位)

round(to_number(end-date-start_date)*1440)- 消逝的时间(以分钟为单位)

显示时间差的默认模式是什么?为了找到这个问题的答案,让我们进行一个简单的SQL *Plus查询。

SQL> select sysdate-(sysdate-3) from dual;

SYSDATE-(SYSDATE-3)
-------------------
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>3<br><br>这里,我们看到了Oracle使用天来作为消逝时间的单位,所以我们可以很容易的使用转换函数来把它转换成小时或者分钟。然而,当分钟数不是一个整数时,我们就会遇到放置小数点的问题。<br><br>Select<br><wbr><wbr> (sysdate-(sysdate-3.111))*1440<br>from<br><wbr><wbr> dual;<br><br>(SYSDATE-(SYSDATE-3.111))*1440<br>------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>4479.83333<br><br>当然,我们可以用ROUND函数(即取整函数)来解决这个问题,但是要记住我们必须首先把DATE数据类型转换成NUMBER数据类型。<br><br>Select<br><wbr><wbr> round(to_number(sysdate-(sysdate-3.111))*1440)<br>from<br><wbr><wbr> dual;<br><br>ROUND(TO_NUMBER(SYSDATE-(SYSDATE-3.111))*1440)<br>----------------------------------------------<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>4480<br><br>我们可以用这些函数把一个消逝时间近似转换成分钟并把这个值写入Oracle表格中。在这个例子里,我们有一个离线(logoff)系统级触发机制来计算已经开始的会话时间并把它放入一个Oracle STATSPACK USER_LOG扩展表格之中。<br><br>Update<br><wbr><wbr> perfstat.stats$user_log<br>set<br><wbr><wbr> elapsed_minutes =<br><wbr><wbr> round(to_number(logoff_time-logon_time)*1440)<br>where<br><wbr><wbr> user = user_id<br>and<br><wbr><wbr> elapsed_minutes is NULL;<br><br>本文作者Donald Bunleson是一名有着23年工作经验的数据库管理员,他编写了14本数据库方面的书籍并发表了100多篇文章。他还是Oracle Internals的主编,同时他还开办了Bunleson Oracle咨询公司。 </wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
评论

相关推荐

    在Oracle9i中Oracle DATA计算时间差

    本文介绍了在Oracle9i中Oracle DATA计算时间差的方法。

    oracle时间差表达式

    oracle时间差表达式,计算两时间相差的天、小时、分钟、秒及毫秒数

    Oracle计算时间差常用函数

    主要介绍了Oracle计算时间差常用函数,涉及用法代码及示例,具有一定参考价值。需要的朋友可以了解下。

    Oracle里面 SQL语句 怎么得到两个时间的时间差

    可以帮助您学些Oracle,有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒)

    sql查询oracle时间段操作

    sql查询oracle时间段操作,通过oracle数据库快照来实现恢复数据

    Oracle计算时间差为毫秒的实现代码

    Oracle 中我们知道用 TO_DATE 函数可以进行秒、分、时、天、月、年、周等时间差的计算,但是毫秒却不好计算,TO_DATE 函数只能精确到秒,毫秒则只能用 TO_TIMESTAMP 函数,但是这个函数不像 TO_DATE 这样直接减出来...

    oracle 中时间使用

    基础时间日期的获取,平日自己存储的知识点,需要的获取时间断 或者 时间差的时候,用来查询

    oracle返回相差的天数

    用ORACLE实现的返回相差的天数,能够方便的解决日期类型的问题

    oracle日期转换

    oracle中的日期转换,包括计算时间差,某月,最后一天等常见时间

    Oracle_RAC安装配置指导书

    RAC,全称real application clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。 RAC提供的优缺点: 优点  Oracle RAC主要...

    Oracle_Database_11g完全参考手册.part2

    上架时间:2010-5-26 出版日期:2010 年6月 开本:16开 页码:1240 版次:1-1 定价 :¥158.00 内容简介 本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大...

    Oracle_Database_11g完全参考手册.part5

    上架时间:2010-5-26 出版日期:2010 年6月 开本:16开 页码:1240 版次:1-1 定价 :¥158.00 内容简介 本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大...

    计算2个日期相差天数、去除节假日周末

    拿去可以直接用的计算2个日期间相差天数,并过滤了节假日和周末。

    oracle日期函数大全

    ORACLE日期时间函数大全:日期和字符转换函数用法(to_date,to_char),两个日期间的天数,月份差,日期格式冲突问题

    2019年假期数据库_建表和插入语句_oracle.sql

    2019年假期数据库。 oracle数据库的建表和插入语句(plsql developer导出的sql)。 包含日期、星期几、是否假期、节假日名称或周末字段。 与百度假期工具核对的结果。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    Oracle日常维护故障定位故障排除

    2 NIT文件中SGA区设置太大,导致内存不够用,数据库和系统都挂死 3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差...

    ORACLE数据库复制

    复制,顾名思义就是将数据库中的数据...如果系统意外的话,流复制的恢复将会需要较长时间,特别是意外时间越长,恢复时间成倍增长。 下面使用相同的环境,分别对两种复制功能进行配置介绍,并进行性能压力测试比较。

    Oracle存储过程,将秒数转换成X天X时X分X秒显示

    Oracle存储过程,将秒数转换成X天X时X分X秒显示

Global site tag (gtag.js) - Google Analytics