gpt4 book ai didi

sql-server - 日期差异表现

转载 作者:行者123 更新时间:2023-12-02 10:53:08 26 4
gpt4 key购买 nike

我有多个天数变量,我想将其与日期时间列(senddate)进行比较。

我目前正在这样做:

DECLARE @RunDate datetime = '2013-01-01' 
DECLARE @CalculationInterval int = 10

DELETE
FROM TableA
WHERE datediff(dd, senddate, @RunDate) > @CalculationInterval

任何超过 10 天的内容都应该被删除。我们在 sendDate 列上有索引,但速度仍然慢得多。我知道出于性能原因,左侧不应该进行计算,但是解决此问题的最佳方法是什么?

最佳答案

表达式

WHERE datediff(dd, senddate, @RunDate) > @CalculationInterval 

由于 senddate 列上的函数,将无法在 senddate 列上使用索引

为了使 WHERE 子句“SARGable”(即能够使用索引),请更改为等效条件:

WHERE senddate < dateadd(dd, -@CalculationInterval, @RunDate)

[感谢@Krystian Lieber,指出了不正确的情况]。

关于sql-server - 日期差异表现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14504189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com