忽略 where 子句中的 DATETIME 参数

Ignore DATETIME parameter in where clause

我在 SSRS 中有一些预设日期参数('last week'、'two weeks ago' 等)。我还想有一个 'All' 参数来忽略

and createdon bewtween @FromDate and @ToDate

在 where 子句中,return 一切都与日期无关。

我试图建立一些动态的 SQL 但整个查询非常大,有许多联合,并且本身变得一团糟。有没有办法在这里建立一个案例陈述来简化我想要实现的目标?

作为 SeanLange 的更具扩展性的建议的替代方案,您可以这样做:

AND createdon BETWEEN ISNULL(@FromDate, createdon) AND ISNULL(@ToDate, createdon)

然后要忽略这些参数中的一个或两个,只需将NULL传入。createdon与自身的比较总是成功,因此该子句始终为真。