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,它的目的是过滤:

问题

在 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)