代码之家  ›  专栏  ›  技术社区  ›  Olivia

存储过程中日期参数的SQL通配符

  •  0
  • Olivia  · 技术社区  · 6 年前

    我有一个带有单个参数的存储过程 @date

    程序是 select 包含以下内容的语句:

    where dateTimeGmt between @date and dateadd(dd,9,@date)

    我希望能够调用此过程,并使用表中的所有日期获得所有结果。

    背景 @日期: % NULL %-%-% 不起作用。

    有没有一种优雅的方式让程序忽略这一点 where 子句中未传递任何参数 exec ?

    1 回复  |  直到 6 年前
        1
  •  2
  •   PSK    6 年前

    我希望能够调用此过程并获得所有结果 使用表中的所有日期。

    将@date设置为%或NULL或%-%-%无效。

    %比较仅适用于字符串类型,不适用于日期

    有没有一种优雅的方式让程序忽略 子句,如果没有向exec传递参数?

    尝试如下更改where子句。

    where (dateTimeGmt between @date and dateadd(dd,9,@date) ) or @date  IS NULL