0

私のストアドプロシージャでは、このコードでパラメータを渡そうとしています

select @enddate = CONVERT(varchar, @days) + '-' + left(@P5, 4) + '20' + right(@P5, 2)

ここで、データ@enddate型はvarchar(12)@daysデータ型はint@P5データ型はvarchar(20)

以下のエラーを表示しています

文字列から日時を変換する際に変換に失敗しました

これに関するアイデアはありますか?

前もって感謝します

4

1 に答える 1

0

このコードをテストしようとしても、表示されているのと同じエラーを引き起こすことはできませんでした。

DECLARE @enddate AS VARCHAR(12) ,
    @days AS INT ,
    @P5 AS VARCHAR(20);

SELECT  @days = 5 ,
        @p5 = '2012-12-12';

SELECT  @enddate = CONVERT(VARCHAR, @days) + '-' + LEFT(@P5, 4) + '20' + RIGHT(@P5, 2);
PRINT @enddate;

結果を生成します

5-20122012

エラーなし。

これはより大きなストアド プロシージャの一部であると提案しました。変数内のデータが信じられないものであるか、エラーが手順の他の場所にあります。

于 2012-12-20T15:40:54.227 に答える