`

Oracle中求时间差的SQL

阅读更多

有两个日期数据START_DATE,END_DATE,欲得到这两个日期的时间差(以天,小时,分钟,秒,毫秒):

  天:
  ROUND(TO_NUMBER(END_DATE - START_DATE))
  小时:
  ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
  分钟:  www.2cto.com  
  ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
  秒:
  ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
  毫秒:
  ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 60)
 
使用举例:
    1.求某个时间与当前时间的时间差(天数)
        select ROUND(TO_NUMBER(sysdate - to_date('2013-3-29','YYYY-MM-DD HH:MI:SS'))) from  dual;
     注意:
        如果是一个日期类型(DATE)的字段,如s.pack_date
        你写成:
         select ROUND(TO_NUMBER(sysdate - to_date(s.pack_date,'YYYY-MM-DD HH:MI:SS'))) from  dual;
         一定会报一个:ORA-01861:文字与格式字符串不匹配 的错误;
         办法:指定日期格式,即:
      (select ROUND(TO_NUMBER(sysdate - to_date(to_char(s.pack_date,'YYYY-MM-DD HH:MI:SS'),'YYYY-MM-DD HH:MI:SS'))) from  dual) days,
分享到:
评论

相关推荐

    sql查询oracle时间段操作

    在"查询oracle时间段操作.txt"文件中,可能包含了具体的SQL查询示例、快照创建步骤和闪回功能的使用指南,以及关于如何有效利用这些工具进行数据恢复和分析的详细说明。阅读这份文件将进一步加深你对Oracle时间段...

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

    在Oracle数据库中,计算两个日期之间的时间差是一个常见的需求,特别是在处理与时间相关的业务逻辑时。根据提供的信息,本文将详细介绍如何使用SQL语句来获取两个时间(`START_DATE`和`END_DATE`)之间的差值,并...

    DBA对Oracle SQL编写规范的总结

    - **规范要求**:在PL/SQL中应当尽可能使用Oracle提供的内置函数,这不仅可以提高代码的性能,还能保证代码的可移植性和稳定性。 - **示例**: ```plsql SELECT TRUNC(SYSDATE) INTO v_date FROM DUAL; ``` ###...

    Oracle 计算非工作时间.sql

    Oracle 计算非工作时间(去除周末,自定义节假日,等待时间)

    oracle时间差表达式

    ### Oracle时间差表达式详解 在Oracle数据库中,计算两个日期之间的时间差是一个常见的需求,尤其是在处理业务逻辑或数据报告时。本篇文章将详细介绍如何利用Oracle内置函数来精确计算两个日期之间的差值,并且能够...

    关于从SQL2008到Oracle方法总结

    - **时间差计算**: - `ROUND(TO_NUMBER(OP_HOLD_SEAT.FLIGHT_DATE - OP_HOLD_SEAT_LOG.TIME)*24*60)` 在Oracle中可以使用`utils.datediff('MI', OP_HOLD_SEAT.FLIGHT_DATE, OP_HOLD_SEAT_LOG.TIME)`。 以上是关于...

    ORACLE内部函数大全以及与SQLSERVER的区别

    - `SYSDATE/GETDATE()`: 获取当前日期和时间,Oracle 使用 `SYSDATE`,SQL Server 使用 `GETDATE()`。 - `LAST_DAY/N/A`: Oracle 提供 `LAST_DAY` 来获取月份的最后一天,SQL Server 没有直接等价函数。 - `NEW_...

    PostgreSQL與Oracle跟SQL92 Standard的差異

    - **ISO SQL92 Standard**、**PostgreSQL**与**Oracle**:三者均支持`timestamp`类型,用于存储时间戳数据,但PostgreSQL和Oracle的`timestamp`类型具有固定的字节数量,而ISO SQL92标准中的`timestamp`类型大小则...

    Oracle中实现datadiff函数

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

    oracle中关于取时间的SQL语句.pdf

    在Oracle数据库中,处理日期和时间是常见的任务,特别是对于数据报表和分析。以下是一些在Oracle中获取和处理日期的SQL语句的关键知识点: 1. **获取月份的周数**: Oracle提供了`TRUNC()`函数来截取日期到指定的...

    ORACLE和SQL语法区别归纳

    - **日期和时间类型**:两者都有 `DATE` 类型,但在 Oracle 中格式默认为 DMY,而在 SQL Server 中可以自定义,默认为 MDY。SQL Server 还提供了 `DATETIME` 和 `SMALLDATETIME`。 - **数字类型**:Oracle 的 `...

    使用Oracle中的时间间隔型数据

    在Oracle数据库中,时间间隔型数据(INTERVAL)的...总的来说,Oracle的时间间隔型数据提供了对时间跨度的精确管理和计算,极大地简化了涉及时间差的操作,使得在数据库中处理时间相关的业务逻辑变得更加方便和准确。

    MYSQL,SQLSERVER,ORACLE常用的函数

    根据提供的标题和描述,本文将详细介绍在MySQL、SQL Server以及Oracle数据库中常用的函数。这些函数主要分为几大类:字符串处理函数、数值处理函数、日期处理函数、转换函数以及其他一些特殊用途的函数。 ### 字符...

    使用oracle计算系统当前时间的毫秒数

    2. **转换为自1970年1月1日以来的天数**:接着将`SYSDATE`减去1970年1月1日(使用`TO_DATE`函数)得到的结果表示的是自1970年1月1日至当前日期的时间差(单位是天)。 3. **转换为毫秒数**:由于一天有86400秒,而...

    Oracle SQL培训讲义

    #### 一、SQL中常见的误区和隐患 在实际的数据库操作中,很多开发者可能会因为对SQL的理解不深而引入一些隐患或误区,这些隐患可能会导致性能问题甚至数据错误。 - **代码疏忽**:比如在比较字符串时未注意到字符...

    ORACLE和SQL语法区别归纳.pdf

    日期和时间数据类型中,ORACLE 的 DATE 类型格式为 DMY,而 SQL 服务器的 DATE 类型格式可以调节,默认为 MDY。 在数字类型中,ORACLE 的 NUMBER(P,S) 类型和 SQL 服务器的 NUMERIC[P(,S)] 类型存在一定的差异。...

    Oracle的SQL实现日期的功能

    在Oracle数据库中,SQL语言是用于管理和操作数据的主要工具,特别是在处理日期和时间类型的数据时,Oracle提供了丰富的函数和操作符。这篇博文“Oracle的SQL实现日期的功能”将深入探讨如何利用Oracle SQL来处理日期...

    ORACLE和SQL语法区别归纳.docx

    * DATE:Oracle 中的 DATE 类型有 Datetime 和 Smalldatetime 两种,而 SQL Server 中的 DATE 类型可以调节,默认的为 MDY。 * Oracle 中的 DATE 类型格式为 DMY,而 SQL Server 中的 DATE 类型格式可以调节,默认的...

Global site tag (gtag.js) - Google Analytics