我需要计算Oracle中两个日期的差异。这不是问题,但有一个条件。 我在创建任务时创建了一个时间戳,然后在任务完成时创建了新的时间戳。我需要计算差异,但是:
当任务在同一天创建并完成时,我需要得到差异= 1(因为他们正在处理它一天),当任务从昨天开始并在今天完成时我需要差异= 2。 我希望你明白,如果不是要求我提供更多信息。
答案 0 :(得分:2)
我在这里假设您的日期保存在DATE类型的列中。如果是这样,以下应该做你想做的事:
SELECT TRUNC(END_DATE) - TRUNC(START_DATE) + 1 AS ELAPSED_DAYS
FROM A_TABLE
分享并享受。
答案 1 :(得分:1)
select date2 - date1 + 1 from <tablename>
答案 2 :(得分:0)
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;