我需要计算 Oracle 中两个日期的差异。这不是问题,但有一个条件。我在创建任务时创建了一个时间戳,然后在任务完成时创建了新的时间戳。我需要计算差异,但是:
当任务在同一天创建并完成时,我需要得到差值 = 1(因为他们工作了一天),而当任务昨天开始并在今天完成时,我需要差值 = 2。我希望你了解,如果不向我询问更多信息。
我在这里假设您的日期保存在 DATE 类型的列中。如果是这样,以下应该做你想要的:
SELECT TRUNC(END_DATE) - TRUNC(START_DATE) + 1 AS ELAPSED_DAYS
FROM A_TABLE
分享和享受。
select date2 - date1 + 1 from <tablename>
select MOD(24 * (to_date('2009-07-08 23:00', 'YYYY-MM-DD hh24:mi')
- to_date('2009-07-07 22:00', 'YYYY-MM-DD hh24:mi')), 24)+1 diff_days
from dual;