可选的时间参数

时间:2017-01-12 11:57:35

标签: sql oracle date

表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

我尝试了很多选项但是无法实现它。请帮助我。感谢。

1 个答案:

答案 0 :(得分:0)

  1. “表格”和“日期”是Oracle的保留字。不要将它们用作标识符(列名,变量名,列别名等)
  2. 将format_mask'DD-MON-RRRR'的“to_date”函数用于显式转换“string”到“date”数据类型。
  3. 你的陈述可能是这样的:

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