C# での DateTime 形式から SQL 形式への変換
予想される SQL Server の日付形式 ("yyyy-MM) と一致するように C# DateTime 変数をフォーマットする-dd HH:mm:ss") は難しい場合があります。コードの詳細な説明と実用的な解決策は次のとおりです。
元のコード:
DateTime myDateTime = DateTime.Now; string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");
このコードの問題は、myDateTime.Date に日付のみが含まれていることです。 myDateTime には時間も含まれます。希望の形式で日付と時刻の両方を含む文字列を取得するには、myDateTime を直接使用する必要があります。
連結文字列を使用した改訂コード:
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + myDateTime.TimeOfDay.ToString("HH:mm:ss");
これコードは、DateTime オブジェクトを日付と時刻のコンポーネントに分割し、それらを文字列に連結します。ただし、myDateTime.TimeOfDay は TimeSpan 型であり、書式文字列を受け取る ToString メソッドがないため、このバージョンはコンパイル時エラーで失敗します。
これを修正するには、ToString() を使用できます。日付と時刻のコンポーネントを分割するのではなく、DateTime を直接メソッドで取得します:
修正解決策:
DateTime myDateTime = DateTime.Now; string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
ToString("yyyy-MM-dd HH:mm:ss.fff") 形式文字列は、ミリ秒精度を含む目的の SQL Server 日付形式を指定します。このコードは、エラーなしで正しくフォーマットされた文字列を生成するはずです。
以上がC# DateTime を SQL Server の「yyyy-MM-dd HH:mm:ss」形式に正しく変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。