C#を使用した日付時間フォーマットからSQLフォーマットへの変換

C#から現在の日付の時間形式を保存して、それをSQL Serverの日付形式に変換し、yyyy-MM-dd HH:mm:ssのようにして、UPDATEクエリに使用できるようにしようとしています。

これが私の最初のコードです。

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");

日付の出力は問題ないのですが、時間は常に"12:00:00"なので、以下のようなコードに変更しました。

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.TimeOfDay.ToString("HH:mm:ss");

すると、次のようなコンパイルエラーが出ました。

FormatExceptionは処理されませんでした。

そして、パースする必要があると言われました。そこで、StackOverflowで調べたとおり、自分のコードにこれを実行してみました。

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.Parse.TimeOfDay.ToString("HH:mm:ss");

または

string sqlFormattedDate = myDateTime.Date.ToString("yyyy-MM-dd") + " " + 
myDateTime.tryParse.TimeOfDay.ToString("HH:mm:ss");

しかし、それは与えられた文脈では有効ではない方法であると言われます。この問題に対する解決策を検索してみましたが、もう2時間も立ち往生しています。私はまだC#の初心者なので、助けてもらえませんか?

ソリューション

以下をお試しください。

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
解説 (4)

最初のコードは次のようにして動作します。

DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); //Remove myDateTime.Date part 
解説 (0)

この問題は、"Date"プロパティが、DateTimeを日付のみに切り詰めることにあります。 この変換を次のように行うことができます。


DateTime myDateTime = DateTime.Now;
string sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // 
解説 (0)