0

私は最近、SQLのパラメーター化されたクエリに飛びつきました。クエリを実行するときに日付に関する苦情があります

文字列で表される日時は、カレンダーSystem.Globalization.GregorianCalendarではサポートされていません。

クエリを取得すると、パラメータ化されたクエリ文字列が取得されます

SELECT * FROM Table WHERE field = @p_param

これをデバッグするために取得する必要があるのは

SELECT * FROM Table WHERE field = "2012-03-12 14:09:00"

一体どうやってこれを行うのですか?単純なことだと思いますが、見えません!

datetimeパラメーターは次のように追加されています。

sql2.Parameters.Add("@p_UpdateTime", SqlDbType.DateTime).Value = DateTime.Parse(updateTime);

稼働時間はで設定されています

String updateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ff");
4

5 に答える 5

1

SQL Serverプロファイラーを使用します(すべてのSQLサーバーに付属しています)。SQLサーバーに送信された完全なコマンドが表示されます。

于 2012-03-12T14:18:08.797 に答える
1

SQL Server Profilerを開き、SQLServerに対して実行された内容を追跡します。ツールの使用方法に関する基本的なチュートリアルを参照してください。

于 2012-03-12T14:20:05.393 に答える
0

文字列値を送信しているようです。DateTime.Formatこれは、現在のスレッドカルチャに応じて変更されるため問題があります。

パラメータを渡すときは、次のようにしてみてください。

DateTime dateParam = GetDateParam();

_sqlCommand.Parameters.Add(
    new SqlParameter
    {
        DbType = DbType.Date,
        ParameterName = "@p_param",
        Value = dateParam 
    });
于 2012-03-12T14:25:06.670 に答える
0

次のようにパラメータを変換できます:

CONVERT(VARCHAR(19), @p_param, 120)

ここで、120はyyyy-mm-dd hh:mi:ss(24h)の変換コードです。

于 2012-03-12T14:17:11.743 に答える
-1

私は今それを修正しました、私がssを使う必要があるとき私は数秒間ffを使っていました

于 2012-03-12T14:34:39.243 に答える