0

如何在不考虑时间(小时、分钟、秒)的情况下从 CURRENT_TIMESTAMP 获取天数。例如。CURRENT_TIMESTAMPis24-JUN-21 00.01.01 AMEVENT_TIMESTAMPis23-JUN-21 07.00.00 PM然后它应该返回1日差。

下面的查询返回我0上述值的天数,因为时差小于 24 小时。

SELECT EXTRACT(DAY FROM (CURRENT_TIMESTAMP - EVENT_TIMESTAMP)) FROM TABLE;

下面的查询返回我到晚上 7 点的天数差异,并在同一天晚上 7 点之后1开始显示天数差异。2

SELECT CEIL(SYSDATE - CAST(EVENT_TIMESTAMP AS DATE)) FROM TABLE;

谢谢。

4

1 回答 1

1

如果我理解正确,您应该只截断这些值:

SQL> select   trunc(to_date('24.06.2021 00:01:01', 'dd.mm.yyyy hh24:mi:ss'))
  2         - trunc(to_date('23.06.2021 07:00:00', 'dd.mm.yyyy hh24:mi:ss')) result
  3  from dual;

    RESULT
----------
         1

SQL>

TRUNC 将“删除”时间组件(实际上,将其设置为午夜)并且您只减去日期。Oracle 中两个 DATE 数据类型值的差异表示它们之间的天数,所以......也许这就是你要找的。

于 2021-06-24T13:00:45.230 回答