c# .net mysql datetime datetime-conversion

Convertir DateTime para MySQL usando C#



.net datetime-conversion (4)

Esto funciona para mí:

1. Extraiga la fecha de la base de datos de Oracle y páselo a variable

string lDat_otp = ""; if (rw_mat["dat_otp"].ToString().Length <= 0) { lDat_otp = ""; } else { lDat_otp = rw_mat["dat_otp"].ToString(); }

2. Conversión a formato mysql

DateTime dateValue = DateTime.Parse(lDat_otp); string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm");

3.Pass formatForMySql variable al procedimiento o a algo más

Quiero cambiar el DateTime para MySQL en C #.

Mi base de datos MySQL solo acepta este formato 1976-04-09 22:10:00 .

En C # tiene una cadena que tiene un valor de fecha:

string str = "12-Apr-1976 22:10";

Quiero convertir para MySQL, entonces se ve así:

1976-04-12 22:10

¿Cómo puedo cambiarlos o cómo otros programadores hacen esto usando el método dd mm hh yy ? ¿Alguien puede decirme sobre ellos?


Le sugiero que use consultas parametrizadas en lugar de enviar valores como cadenas en primer lugar.

De esta manera, solo necesita poder convertir su formato de entrada a DateTime o DateTimeOffset , y luego no tendrá que preocuparse por el formato de la base de datos. Esto no solo es más simple, sino que evita los ataques de inyección SQL (por ejemplo, para los valores de cadena) y es más robusto frente a los cambios en la configuración de la base de datos.

Para la conversión original a DateTime , le sugiero que utilice DateTime.ParseExact o DateTime.TryParseExact para especificar explícitamente el formato esperado.


Si su formato de cadena para DateTime es fijo, puede convertir a System.DateTime usando:

string myDate = "12-Apr-1976 22:10"; DateTime dateValue = DateTime.Parse(myDate);

Ahora, cuando lo necesite en su formato específico, puede revertir el proceso, es decir:

string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm");

editar - código actualizado. Por alguna extraña razón, DateTime.ParseExact no estaba jugando bien.


Tenga en cuenta que puede codificar el formato ISO

string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm:ss");

o use el siguiente:

// just to shorten the code var isoDateTimeFormat = CultureInfo.InvariantCulture.DateTimeFormat; // "1976-04-12T22:10:00" dateValue.ToString(isoDateTimeFormat.SortableDateTimePattern); // "1976-04-12 22:10:00Z" dateValue.ToString(isoDateTimeFormat.UniversalSortableDateTimePattern)

y así