WHERE [Date] <= CASE
WHEN @param = 1 THEN CONVERT(DATE, GETDATE())
WHEN @param = 2 THEN DATEADD(DD, 1, GETDATE())
上面的示例传递了变量@param
,用于过滤:
@param = 1
(今天所有的日子都不到或包括在内)。@param = 2
(今天和明天的所有日子都不到或包括在内)。@param = 3
(仅限今天)。这需要更改表达式。问题
在SQL Server中,如何创建一个评估不同相等性的条件where
子句?
WHERE [Date] <=
WHERE [Date] =
或换句话说:
如何才能在今天添加过滤器?
答案 0 :(得分:4)
尝试:
where
([date] <= CONVERT(DATE,GETDATE()) and @param = 1) or
([date] <= DATEADD(DD, 1, GETDATE()) and @param = 2) or
([date] = GETDATE() and @param = 3)