计算Oracle中日期的差异

时间:2012-07-12 09:43:18

标签: sql oracle date

我需要计算Oracle中两个日期的差异。这不是问题,但有一个条件。 我在创建任务时创建了一个时间戳,然后在任务完成时创建了新的时间戳。我需要计算差异,但是:

当任务在同一天创建并完成时,我需要得到差异= 1(因为他们正在处理它一天),当任务从昨天开始并在今天完成时我需要差异= 2。 我希望你明白,如果不是要求我提供更多信息。

3 个答案:

答案 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;

Demo