分析方法を知りたい学術的なシナリオがあります。
DECLARE @date DATETIME
SET @date = getDate()
SET @date = DATEADD(DAY, DATEDIFF(DAY, 0, @date-3), 3)
これにより、日付が木曜日に切り捨てられます。
私が挑戦してきたのは、暗黙の CAST がある場所を証明することです。
これは、これが起こっているに違いないと私が推定する3つの場所です...
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
は3
定数なので、これは実行計画へのコンパイル中に行われるのでしょうか?
しかし、3
が INT 変数である場合、それは異なるでしょうか?
これを帝国的に決定できるように、実行計画またはその他の方法を分析する方法はありますか?
さらに複雑なことに、私は現在現場を離れています。これで同僚をリモートで支援しようとしています。つまり、SSMS などに直接アクセスできないということです。