0

Oracle で 2 つの日付の差を計算する必要があります。問題ありませんが、条件があります。タスクが作成されたときにタイムスタンプを作成し、タスクが終了したときに新しいタイムスタンプを作成しました。差を計算する必要がありますが、次のようになります。

タスクが作成され、同じ日に終了した場合、差 = 1 を取得する必要があります (彼らは 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 に答える