SQL 服务器:条件 where 子句(等于)或(小于或等于)
SQL Server : Conditional where clause (Equal) OR (LessThan or Equal)
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 服务器中,如何创建一个条件 where
子句来计算不同的相等性?
WHERE [Date] <=
WHERE [Date] =
或者换句话说:
如何为今天添加过滤器?
尝试:
where
([date] <= CONVERT(DATE,GETDATE()) and @param = 1) or
([date] <= DATEADD(DD, 1, GETDATE()) and @param = 2) or
([date] = GETDATE() and @param = 3)
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 服务器中,如何创建一个条件 where
子句来计算不同的相等性?
WHERE [Date] <=
WHERE [Date] =
或者换句话说:
如何为今天添加过滤器?
尝试:
where
([date] <= CONVERT(DATE,GETDATE()) and @param = 1) or
([date] <= DATEADD(DD, 1, GETDATE()) and @param = 2) or
([date] = GETDATE() and @param = 3)