web-dev-qa-db-ja.com

Oracleの2つの日付の間の日数を取得します(日付を含む)

提供された2つの日付間の合計日数を取得したい。以下のクエリを試してみましたが、まったく異なる結果は得られませんでした。最終日は含まれていません。

select (to_date ('15-06-13','dd-MM-yyyy') - to_date('01-02-12','dd-MM-yyyy')) 
  from dual

これは501日を返すはずですが、代わりに500日を返しています。計算後に+1を追加すると、正しい結果が得られます。

本当に+1を含める必要がありますか、それとも実際の結果を得るための代替アプローチはありますか?

11
user968441

Oracleでは、2つの日付を減算すると、2つの日付間の日数が返されます。
minus演算子は、数値の場合と同じように機能します。

20 - 20 = 0   ===>      2013-05-20  -  2013-05-20 = 0
25 - 20 = 5   ===>      2013-05-25  -  2013-05-20 = 5

last numberまたはlast dateを含める場合は、1を追加する必要があります。

20 - 20 + 1 = 1   ===>      2013-05-20  -  2013-05-20  + 1 = 1
25 - 20 + 1 = 6   ===>      2013-05-25  -  2013-05-20  + 1 = 6
16
krokodilko