5

C# から SQL Server SP に datetime 値を渡しています。フォーマットを渡すと、正常にdd-MM-yyyy動作しますが、その日付のレコードがあっても SP から値が返されません。SP を formatMM-dd-yyyyで実行すると、「データ型 nvarchar を datetime に変換中にエラーが発生しました。」というエラーが返されます。SPは

execute usp_detData '22/12/2012 00:00:00', '31/12/2013 23:59:59'- - エラー

execute usp_detData '12/22/2012 00:00:00', '12/31/2013 23:59:59'--- 正常に動作しています

解決策を教えてください

4

3 に答える 3

4

C# から SQL Server SP に datetime 値を渡しています。

文字列連結で渡していると思います。タイプのSqlParameterを使用DateTime し、サーバーに処理させるとよいでしょう。

using (SqlCommand cmd = new SqlCommand(" usp_detData", conn))
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@StartDate", DateTime.Now.AddDays(-10));
    cmd.Parameters.AddWithValue("@EndDate", DateTime.Now);
    SqlDataReader dr = cmd.ExecuteReader();
    .....
}

また、IDisposableを実装するオブジェクトを含むコードでusingブロックを使用することも検討してください。例えば。、など_SqlCommandSqlConnectionSqlDataReader

于 2013-02-04T12:06:58.253 に答える
1

これを試して :

DateTime.ParseExact("12/02/21 10:56:09", "dd/MM/YYYY HH:mm:ss", 
    CultureInfo.InvariantCulture
    ).ToString("MMM. dd, yyyy HH:mm:ss")

または、この質問に答えてください DateTime を指定された形式に変換します

于 2013-02-04T12:07:41.280 に答える
0

「yyyy-MM-dd HH:mm:ss」の形式を使用すれば、問題はありません。

于 2013-02-04T12:03:14.040 に答える