次の手順があります。
ALTER PROCEDURE [dbo].[myProcedute]
@mydate VARCHAR(8000) = NULL
IF @mydate = ''
BEGIN
SET @mydate = NULL
END
ELSE
BEGIN
SET @mydate = CONVERT(DATETIME, @mydate, 103) -- dd/mm/yy
END
INSERT INTO dbo.myTable(theDate) VALUES(@mydate)
そして、私はそれを次のように実行します:
EXEC [dbo].[myProcedure] '02/02/2012'
実行後、このエラーが発生します:文字列から日時を変換するときに変換に失敗しました。
vb6 コードから実行しますが、日付は異なる場合があります。今回は「2012/02/02」ですが、次回は「(空)」になるかもしれません。
'' になったら、IF 句でわかるように NULL を挿入する必要があります。
このエラーが発生するのはなぜですか?
どうもありがとう !