我有一个学术场景,我想知道如何分析。
DECLARE @date DATETIME
SET @date = getDate()
SET @date = DATEADD(DAY, DATEDIFF(DAY, 0, @date-3), 3)
这会将日期四舍五入到星期四。
我一直面临的挑战是证明存在隐式CAST。
我认为这必须发生的三个地方......
DATEADD(
DAY,
DATEDIFF(
DAY,
0, -- Implicitly CAST to a DATETIME?
@date-3 -- I presume the `3` is being implicitly cast to a DATETIME?
),
3 -- Another implicit CAST to a DATETIME?
)
然而,也许由于0
and3
是常量,这是在编译到执行计划期间完成的?
但是如果3
's 是 INT 变量,那会有所不同吗?
有没有办法分析执行计划或其他方法,以便能够确定这一点?
更复杂的是,我目前不在现场。我正在尝试远程协助一位同事。这意味着我无法直接访问 SSMS 等。