1

エラーが発生します:

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

次のようにストアド プロシージャを呼び出します。

var result = (from x in db.spStoredProc(sStart, sEnd) select x).ToList();

sStartとはsEnd、次の値の文字列です。

sStart = "CONVERT(date,GETDATE())"

sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"

ストアド プロシージャには、型の 2 つのパラメーターがあります。varchar(max)

ストアド プロシージャでは、左結合を作成し、次のように使用します。

where date_expire >= @sStartSQL AND date_expire < @sEndSQL

エラーが発生するのはなぜですか?

4

1 に答える 1

1

リテラルのみをパラメーターとして渡すことができます。したがって、SQL Server は文字通りこれを日付にキャストしようとします。

sEnd = "DATEADD(d,1,CONVERT(date,GETDATE()))"

代わりに、次を渡します。

sEnd = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")

パラメータとして。

于 2012-12-31T10:06:00.310 に答える