2011-11-13 23 views
0

C#とT-SQLのdatetime形式に問題があります。 C#アプリケーションが C#とT-SQL間で異なる日付形式のエラー

  • T-SQLは明らかにT-SQL
  • MM \ DD \ YYYY HH.MM.SSフォーマットを使用しているDD.MM.YYYY HH.MM.SSフォーマットを使用している

    • Error converting data type nvarchar to datetime.エラーを返します。

      SQL側で日時フォーマットをチェックして変換する方法はありますか?私はT-SQLにDD.MM.YYY形式を使用させたいと思います。

      ありがとうございました。

    +1

    T-SQLは文字列の書式設定を使用しません。「DateTime」は「DateTime」であり、それに関連付けられた書式はありません。パラメータ化されたクエリを使用するか、実際に文字列形式の日付が必要な場合は、** ISO-8601 **標準形式( 'YYYYMMDD'または' YYYYMMDDTHH:MM:SS')を使用してください。 –

    答えて

    4

    parameterized queriesを使用すると、この種の問題を回避できます。

    SQLをSQL Serverに渡す文字列として作成すると、この種の問題に遭遇するだけでなく、SQL Injectionにさらされる可能性があります。

    パラメータ化されたクエリでは、DateTimeの値を渡すことになり、DBライブラリは適切な処理を行います。

    フォーマットは、ディスプレイでのみ使用されるため、再生されません。

    +0

    パラメータを使用しています:sCommand .Parameters.AddWithValue( "@ datetime_from"、DatetimeFrom); – feronovak

    +2

    @feronovak - どのタイプが 'DatetimeFrom'ですか?完全なコードを投稿できますか? – Oded

    関連する問題