`
123003473
  • 浏览: 1064804 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle DATA的一个常见问题计算时间差

阅读更多
 计算时间差是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) 

  ------------------- 

  3 

  这里,我们看到了Oracle使用天来作为消逝时间的单位,所以我们可以很容易的使用转换函数来把它转换成小时或者分钟。然而,当分钟数不是一个整数时,我们就会遇到放置小数点的问题。 

  Select 

  (sysdate-(sysdate-3.111))*1440 

  from 

  dual; 

  (SYSDATE-(SYSDATE-3.111))*1440 

  ------------------------------ 

  4479.83333 

  当然,我们可以用ROUND函数(即取整函数)来解决这个问题,但是要记住我们必须首先把DATE数据类型转换成NUMBER数据类型。 

  Select 

  round(to_number(sysdate-(sysdate-3.111))*1440) 

  from 

  dual; 

  ROUND(TO_NUMBER(SYSDATE-(SYSDATE-3.111))*1440) 

  ---------------------------------------------- 

  4480 

  我们可以用这些函数把一个消逝时间近似转换成分钟并把这个值写入Oracle表格中。在这个例子里,我们有一个离线(logoff)系统级触发机制来计算已经开始的会话时间并把它放入一个OracleSTATSPACK USER_LOG扩展表格之中。 

  Update 

  perfstat.stats$user_log 

  set 

  elapsed_minutes = 

  round(to_number(logoff_time-logon_time)*1440) 

  where 

  user = user_id 

  and 

  elapsed_minutes is NULL;


//参考链接
http://blog.csdn.net/chaoma96/archive/2008/07/02/2604420.aspx
分享到:
评论

相关推荐

    在Oracle9i中Oracle DATA计算时间差

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

    Oracle中实现datadiff函数

    然而,在Oracle中我们可以通过自定义函数的方式实现类似的功能,即计算两个日期之间的时间差。 #### 实现方法 为了在Oracle中模拟`DATEDIFF`功能,我们可以创建一个用户定义的函数。下面将详细介绍如何创建和使用...

    oracle变化数据捕获

    这种方式存在一定的延迟,因为数据提交和写入日志之间存在时间差。 - **创建异步HotLog模式**:需要设置ChangeTable来存储变化数据。通过LGWR进程将提交的事务记录到在线重做日志文件中,并自动填充到ChangeTable中...

    Oracle中使用支持向量机的时间序列预测方法.pdf

    总结起来,Oracle Data Mining结合SVM为时间序列预测提供了强大工具,其优势在于能处理非线性关系、高维数据和小样本问题,且预测性能优越。然而,使用SVM也需要注意参数调优、模型解释和实际应用中的适应性等问题。...

    时间、日期转字符、字符转data、时间差.sql

    时间、日期转字符、字符转data、时间差.sql

    Oracle专家白鳝 从一个案例看性能优化与系统优化.pdf

    从项目背景到问题提出,再到监控指标、解决方案以及性能问题分析,文档为读者提供了一个具体案例的全面分析。在实际工作中,这些知识点可以帮助数据库管理员和系统工程师诊断问题、分析性能瓶颈,并提供针对性的优化...

    ORACLE_日常维护知识大全

    - 对象的下一个扩展和表空间的最大扩展值之间的匹配程度也会影响到性能。可以通过查询`dba_segments`视图来检查这些值。 #### 5. 检查Oracle数据库备份结果 这部分关注于检查备份的结果,以确保数据的安全性和...

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

    2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行...

    探讨Oracle数据缓冲区内部机制

    在Oracle 8i之前,新加载到缓冲区的数据块会自动放置到最近使用列表的前端,但自8i版本起,策略发生了变化,新数据缓冲区被插入到缓冲区链的中部,这是一个优化的策略,旨在提高数据缓冲的效率。 数据缓冲区的内部...

    Oracle数据库日常维护手册.pdf

    - **启动时间** (`startup_time`):显示Oracle实例最后一次启动的时间。 - **状态** (`status`):应为“OPEN”,表明Oracle实例正在运行并且可以接受连接请求。 - **数据库状态** (`database_status`):应为...

    oracle数据库高级管理

    Oracle9i是其一个版本,虽然现在已经较为陈旧,但其中包含的许多高级管理概念和技巧仍然对当前的数据库管理员有指导价值。在这个主题中,我们将深入探讨Oracle9i数据库的高级管理,特别是备份策略这一核心环节。 ...

    Oracle DBA日常巡检最佳实践

    ### Oracle DBA日常巡检最佳实践 #### 一、检查数据库基本状况(基础巡检) **1.1 检查Oracle实例状态** - **目的**:确保Oracle实例正在运行且状态正常。 - **方法**:通过SQL*Plus或其他管理工具执行`SELECT ...

    oracle课堂笔记

    - 每个数据库都有一个唯一的标识符,用于区分不同的数据库实例。 - **数据库用户**:通常使用`SYSTEM`作为管理员账户,`SYS`具有更高级权限。 #### 数据库对象 - **表空间**(Tablespace):存储数据的逻辑容器,...

    oracle习题带答案

    在Oracle中,可以使用`NEXT_DAY`函数来找到下一个星期几的日期。例如,要查询下一个星期一的日期,可以使用命令: ``` SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MONDAY') FROM DUAL; ``` 这将返回当前日期和下一个星期...

    oracle ocp认证考试最新题库052-Oracle.HotCerts.1Z0-052

    题库中的每一道题目通常会包含一个场景描述,考生需要根据场景来选择最合适的答案选项。这不仅考验考生的知识面,还考验了考生的应用能力和实战经验。通过反复练习和分析这些题目,考生可以更好地理解Oracle数据库的...

    oracle DBA 日志

    这标志着Oracle产品的一个重要转折点。 - **功能增强**:随着Oracle 7.1版本的发布,引入了许多新特性,如多线程服务器、分区等功能,这些都大大提高了Oracle数据库的可管理性和性能表现。 ### DBA角色及职责 ####...

    一些oracle面试题

    在这种模式下,一个事务只能读取其他已提交事务的数据。避免了脏读的问题,但仍然存在不可重复读的可能性。 - **可重复读 (Repeatable Read)**:在该级别下,事务在其执行过程中多次读取同一数据时,结果是相同的,...

    基于Oracle9 i分布式数据库系统复制机制的研究.pdf

    3. **异步复制**:在Oracle9i中,异步复制允许源数据库和目标数据库之间存在时间差,事务在源数据库提交后不会立即反映到副本上,这在广域网环境中的应用较为常见。 4. **双向复制**和**多向复制**:双向复制使得两...

Global site tag (gtag.js) - Google Analytics