• ベストアンサー

(日付 - 日付)/数値

日付の計算で、(日付 - 日付)/数値は期間らしいですが、どのように使っているのですか?実例ありますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>>select to_date(20091211) - to_date(20091204) / 7 from dual >>→ORA-00932: データ型が一致しません: NUMBERが予想されましたがDATEです。 >(日付 - 日付)は、to_numberでくくって数値に変換してから割り算しないと、エラーになるのですね。 to_numberで数値化しないのが問題なのではなく、カッコを忘れてるから、 日付型と数値の演算になってるのがエラーの理由です。 select (to_date(20091211) - to_date(20091204)) / 7 from dual のように、質問のような式であれば、to_numberなしでも結果は戻ります。

aura999
質問者

お礼

ありがとうございました。

その他の回答 (1)

回答No.1

期間とか分からないけど。 ご自身で考えてみてください。 select to_date(20091211) - to_date(20091204) from dual →7 select to_date(20091211) - to_date(20091204) / 7 from dual →ORA-00932: データ型が一致しません: NUMBERが予想されましたがDATEです。 select to_number(to_date(20091211) - to_date(20091204)) / 7 from dual →1

aura999
質問者

お礼

(日付 - 日付)は、to_numberでくくって数値に変換してから割り算しないと、エラーになるのですね。ありがとうございました。

関連するQ&A