0

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

当任务在同一天创建并完成时,我需要得到差值 = 1(因为他们工作了一天),而当任务昨天开始并在今天完成时,我需要差值 = 2。我希望你了解,如果不向我询问更多信息。

4

3 回答 3

2

我在这里假设您的日期保存在 DATE 类型的列中。如果是这样,以下应该做你想要的:

SELECT TRUNC(END_DATE) - TRUNC(START_DATE) + 1 AS ELAPSED_DAYS
  FROM A_TABLE

分享和享受。

于 2012-07-12T11:27:08.753 回答
1
select date2 - date1 + 1 from <tablename>
于 2012-07-12T09:53:41.490 回答
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;

演示

于 2012-07-12T09:55:45.737 回答