SQLServerのWHERE句でdatetime型の列とdate型の変数を比較してもよいか
解決したいこと
SQLServerのWHERE句でdatetime型の列とdate型の変数を比較しても問題ありませんか?
変数の型をdate型にしたのは特に理由はありません。
あとになり、datetime型の列とdate型の変数を比較していることに気づきました。
AIに聞いてみると暗黙的に型変換が行われるため問題ないと返答が来ました。
(date型の時刻を00:00:00として補完する)
こちらも時刻は「00:00:00」に固定したいため現状のままのSQLを使用しています。
また、実際の出力結果を確認しても問題なく結果が出ています。
date型の変数をdatetime型の変数に修正した方がよいのでしょうか。
よろしくお願いいたします。
該当するソースコード
DECLARE @BeforeThreeMonths date;
SET @BeforeThreeMonths = DATEADD(MONTH, -3, GETDATE())
SELECT *
FROM TestDB
WHERE @BeforeThreeMonths < TestDate