2017-01-12 35 views
0

表1:可選的時間參數

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

我想寫一個SQL,這使得DATE參數選項

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

即當空值傳遞它應該顯示

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

當我選擇01-JAN-2015爲:日期

它應該顯示

name Date 
A 01-JAN-2015 

我試過很多的選擇,但我不能夠去實現它。請幫我.gratitude。

+0

是您的表名確實叫表1?那麼你需要稱之爲「表1」。如果你有空間,你需要這個。你能告訴我們什麼「無法實現」是什麼意思?你有錯誤?什麼錯誤? –

回答

0
  1. 「表」 和 「日期」 是Oracle的保留字。不要把它們作爲標識符(列名,變量名,列別名等)
  2. 使用「TO_DATE」與format_mask「DD-MON-RRRR」來顯式轉換「字符串」到「日期」數據類型的功能。

你的語句可能是這樣的:

select * 
from table_a 
where to_date(:Date_a, 'DD-MON-YYYY')=date_a or :Date_a is null;