2017-01-12 6 views
0

表1:オプションTimeパラメータ

Name Date 
A 01-JAN-2015 
B 03-DEC-2016 

私はSQLを書きたい、オプション

select * from Table 1 where :Date = Date or :Date is null; 

すなわちとして日付パラメータを作るnull値が渡されたとき、それは

Name Date 
A 01-JAN-2015 
B 03-DEC-2016 
が表示されます

01-JAN-2015を次のように選択した場合:日付

それは私が多くのオプションを試してみましたが、それは私を助けて.gratitudeしなさい達成することはできませんよ

name Date 
A 01-JAN-2015 

表示されるはずです。

+0

あなたのテーブル名が実際に表1と呼ばれてい??それからあなたはそれを "テーブル1"と呼ぶ必要があります。あなたはスペースがあればそれが必要です。 「達成できない」とはどういう意味ですか?あなたはエラーがありますか?何のエラー? –

答えて

0
  1. 「表」および「日付」は、Oracleの予約語です。
  2. format_mask 'DD-MON-RRRR'とともに「to_date」関数を使用して、明示的な「文字列」型のデータ型から「日付型」型への変換を使用します(列名、変数名、列別名など)。

あなたの文では、このようなことができます:

select * 
from table_a 
where to_date(:Date_a, 'DD-MON-YYYY')=date_a or :Date_a is null; 
関連する問題