首页 > 解决方案 > 以小时和分钟选择两个日期的差异

问题描述

我有以下问题,我试图找出两个日期的小时和分钟的差异,例如

select to_date('13.05.2021 09:30','DD.MM.YYYY HH24:MI') 
     - to_date('13.05.2021 08:15','DD.MM.YYYY HH24:MI') from dual;

显然它会返回天数的差异,所以输出将为 0,我期待 01:15 之类的东西

标签: sqloracleoracle-sqldeveloper

解决方案


根据您的结果所需的数据类型...

如果一个interval day to second可以工作,那么你可以这样做:

select (date2 - date1) * interval '1' day from dual;

例如:

select (to_date('13.05.2021 09:30','DD.MM.YYYY HH24:MI') 
      - to_date('13.05.2021 08:15','DD.MM.YYYY HH24:MI'))
      * interval '1' day as diff
from   dual;

DIFF               
-------------------
+00 01:15:00.000000

试试这个;如果您需要不同的结果数据类型,请告诉我们。请注意,愚蠢的是,Oracle 不支持间隔的聚合函数。因此,如果您需要此类差异的总和,则应首先应用聚合,并且仅使用此技巧将转换为间隔作为最后一步。


推荐阅读