Dapper - パラメータとしてgetdateを渡す

dapper

質問

私はSQL Dapperを使用していて、UIからDATEADD(yy、DATEDIFF(yy、0、getdate())+ 1、-1)のようなパラメータを渡したい。これどうやってするの?

DynamicParameterはkeyを文字列とオブジェクトの値として受け取り、キーをパラメータとして指定します。クエリで指定した値とuiから取得した値を渡します。ここでエラーが発生します。 日付や時刻を変換すると変換に失敗しました文字列から。

- 助けが必要。

エキスパート回答

それ以来、パラメータとして送信したいビットは、私には完全にはわかりません。

 DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1)

パラメータではありません 。最終的には、それを変数に置き換えることもできますが、SQLに直接書き込むことができます:

declare @when datetime = DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1);
-- some more sql here, at some point using @when

パラメータとして日付だけを渡す場合は、まず日付コードを実行します。

DateTime when = // some C# here...
var data = conn.Query<Whatever>(sql, new { when, ... }).ToList();

DATEADD(yy, DATEDIFF(yy,0,getdate()) + 1, -1)などの複雑な文を単一の型付きパラメータとして直接渡すことは決してありません。通常の使用では、 datetime型のパラメータには、通常は計算されたDateTimeからの単一の値が与えられます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ