我是根据过滤条件的where子句中使用的几个参数从表中获取数据。参数是天数和客户名称(@days和@customer名称)。以下是我想要实现的目标。
where lastupdateddate between getdate() - 6
如果用户未将任何值传递给参数,则应采用默认的5天
where lastupdateddate between getdate() - 5
答案 0 :(得分:0)
您真的没有提供足够的信息以获得良好的答案,但您应该可以使用您正在使用的任何SQL变体的空合并运算符来执行此操作。
例如)getdate()和getdate()之间的lastupdated - nvl(@ days,5)
对于客户名称,只需合并到列值
其中custname = nvl(@customer,custname)
答案 1 :(得分:0)
尝试以下内容......
更新 - 使用DATEADD()函数
WHERE CustomerName = CASE WHEN @Customer IS NOT NULL THEN @customername ELSE CustomerName END
AND lastupdateddate BETWEEN getdate() and DATEADD(DAY, ISNULL(@int, 5) * -1, GETDATE())