sql - Oracle 日期减法

标签 sql oracle plsql

我将如何编写一个表达式,以天、小时、分钟、秒等为单位给出两个日期之间的差异?默认情况下,在 oracle 中减去两个日期以小数形式返回天数。

最佳答案

使用:

SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1,
       TO_CHAR(date2,'MMDDYYYY:HH24:MI:SS') date2,
       TRUNC(86400*(date2-date1)) - 60*(TRUNC((86400*(date2-date1))/60)) seconds,
       TRUNC((86400*(date2-date1))/60) - 60*(TRUNC(((86400*(date2-date1))/60)/60)) minutes,
       TRUNC(((86400*(date2-date1))/60)/60) - 24*(TRUNC((((86400*(date2-date1))/60)/60)/24)) hours,
       TRUNC((((86400*(date2-date1))/60)/60)/24) days,
       TRUNC(((((86400*(date2-date1))/60)/60)/24)/7) weeks
  FROM TABLE

引用:A Comparison of Oracle's DATE and TIMESTAMP Datatypes

关于sql - Oracle 日期减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506276/

相关文章:

oracle - Sql*plus 总是返回退出代码 0?

sql - 如何计算表中PK的列数(PL-SQL)

sql - 正则表达式 PL/SQL

oracle - Plsql 未初始化的集合

sql - 使用 UNION ALL 分组和排序

sql - 在 Spring boot 应用程序中使用 Elasticsearch 全文搜索 sql 数据库的正确方法

java - 我想将 sql 列与 java 中的 d1 变量进行比较

python - 使用 pyodbc 创建列 - 不工作

java - JPA 和 ORACLE 函数 : error when call a stored procedure using NamedNativeQuery

sql - 检索从前一天下午 6 点到今天下午 6 点的数据