我的 SQL 语句包含以下 where 子句:
DATEDIFF(day,LastActivityTimestamp,getdate()) > 90
但是 LastActivityTimestamp 上的索引在这里没有播放。如何重写它以利用索引?
我的 SQL 语句包含以下 where 子句:
DATEDIFF(day,LastActivityTimestamp,getdate()) > 90
但是 LastActivityTimestamp 上的索引在这里没有播放。如何重写它以利用索引?
好吧,以下仍然使用函数,但确实允许在 上使用索引LastActivityTimestamp
,这可能是您所要求的:
LastActivityTimestamp < DATEADD(day,-90,getdate())
如果这不是您所要求的,您可能需要在您的问题中添加更多信息,以了解您正在尝试做什么/试图避免什么。
避免使用函数的唯一方法是对日期范围进行硬编码。(getDate()
也是一个函数。)
Where LastActivityTimestamp < @startDateRange
我建议您编辑您的答案,以提供有关您真正的最终目标的更多具体细节。