MS Access から変換しようとしているクエリに問題があります。クエリ フラグ レコードが 90 日より古い場合は削除されますが、このクエリを SQL サーバーに変換すると、削除されるレコードが多すぎます。
UPDATE DT.SM_T_CountTotals
SET IsActive = 0
WHERE Convert(varchar, DT.SM_T_CountTotals.PostDate, 101) <
Convert(varchar, GetDate()- 90, 101)
MS Access でこのクエリを実行すると、フラグが立てられた合計 3793 レコードが得られますが、SQL サーバーでは、削除のフラグが立てられた 69061 レコードが得られます。GetDate()-90 の値は 2010 年 10 月 26 日の時点では正しいですが、今年からすべて削除するようにフラグを立てています。
私が見落としているのは簡単なことだと確信しています。助けてください?
私はそれを考え出した:
UPDATE DT.SM_T_CountTotals
SET IsActive = 0
WHERE DT.SM_T_CountTotals.PostDate < Convert(varchar, GetDate()- 90, 101)