Formato DateTime a formato SQL usando C#

Estoy intentando guardar el formato de fecha y hora actual de C# y convertirlo a un formato de fecha de SQL Server como aaaa-MM-dd HH:mm:ss para poder utilizarlo en mi consulta UPDATE.

Este fue mi primer código:

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

La salida de la fecha está bien, pero la hora es siempre "12:00:00" así que cambié mi código a lo siguiente:

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

Me dio este error de compilación:

FormatException was unhandled

Y me sugirió que tenía que parsear. Así que traté de hacer esto a mi código según mi investigación aquí en StackOverflow:

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

o

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

Pero me dice que es un método que no es válido para el contexto dado. He intentado buscar soluciones a mi problema y llevo dos horas atascado. Aún soy un poco novato en C#, ¿pueden ayudarme por favor?

Solución

pruebe esto a continuación

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

Su primer código funcionará haciendo esto

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

Tu problema está en la propiedad "Date" que trunca DateTime a fecha solamente. Podrías poner la conversión así:


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