2011-08-01 19 views
1

私はOracleを初めて使用しているため、問題が発生しました。 START_DATEとEND_DATEのページにフォームがあり、これらの値をDBの対応するStartDate列とEndDate列と比較する必要があります。これらの列はNULL可能ですので、エラーが発生しています。これを回避するさまざまな方法は何ですか?私が他のオプションを探していたので、私は現在、私のクエリを構築するためにFilterクラスを使用しているので、ToDateの使用は簡単には機能しません。Oracleの日付列のNULL

答えて

2

これは、日付の処理に使用するロジックの種類に依存します。開始日の場合はnullを意味している場合、「適用されない」と同じことが、あなたのような何かを行うことができ、END_DATEのために真である:、ちょうどSTART_DATEとEND_DATEのための任意の小規模および大規模な値をプラグインされて

WHERE date_I_care_about 
    BETWEEN nvl(start_date,to_date('19000101','YYYYMMDD')) 
     AND nvl(start_date,to_date('30000101','YYYYMMDD')) 

をあなたが価値を持っていないとき。

ただし、上記が適切かどうかは、特定のロジックによって異なります。