Formato DateTime para o formato SQL usando C#

Estou tentando salvar o formato de data/hora atual do C# e convertê-lo para um formato de data do SQL Server como yyyyy-MM-dd HH:mm:ss para que eu possa utilizá-lo para a minha consulta UPDATE.

Este foi o meu primeiro código:

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

A saída na data está bem, mas a hora é sempre "12:00:00" por isso mudei o meu código para o seguinte:

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

Isto deu-me este erro de compilação:

FormatException foi desenrolado

E sugeriu que eu precisava de analisar. Por isso tentei fazer isto ao meu código de acordo com a minha pesquisa aqui no StackOverflow:

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

ou

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

Mas it's me dizendo que it's é um método que não é válido para um determinado contexto. Eu tentei procurar por soluções para o meu problema e já estou preso há duas horas. I'ainda sou um pouco novo em C#, você pode me ajudar, por favor?

Solução

tente isto abaixo

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

O seu primeiro código vai funcionar fazendo isto

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

O seu problema está no "Date" propriedade que truncata o DateTime apenas até à data. Você poderia colocar a conversão dessa forma:


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