.net - Convertir DateTime pour MySQL en utilisant C#




datetime-conversion (5)

Je vous suggère fortement d'utiliser des requêtes paramétrées au lieu d'envoyer des valeurs sous forme de chaînes en premier lieu.

De cette façon, il vous suffit de convertir votre format d’entrée en DateTime ou DateTimeOffset , sans avoir à vous soucier du format de la base de données. Ceci est non seulement plus simple, mais évite les attaques par injection SQL (par exemple pour les valeurs de chaîne) et est plus robuste face aux modifications des paramètres de la base de données.

Pour la conversion d'origine en un DateTime , je vous suggère d'utiliser DateTime.ParseExact ou DateTime.TryParseExact pour spécifier explicitement le format attendu.

Je veux changer le DateTime pour MySQL en C #.

Ma base de données MySQL n'accepte que ce format 1976-04-09 22:10:00 .

En C # avoir une chaîne qui a une valeur de date:

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

Je veux convertir pour MySQL alors il ressemble à:

1976-04-12 22:10

Comment puis-je les changer ou comment un autre programmeur fait-il cela en utilisant la méthode dd mm hh yy ? Quelqu'un peut-il me parler d'eux?


Cela fonctionne pour moi:

1. Extrayez la date de la base de données Oracle et transmettez-la à la variable

 string lDat_otp = "";

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

2. Conversion au format mysql

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

3.Passe la variable formatForMySql à la procédure ou à autre chose


N'oubliez pas que vous pouvez coder en dur le format ISO

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

ou utiliser ensuite:

// 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)

etc


Si votre format de chaîne pour DateTime est corrigé, vous pouvez le convertir en System.DateTime utilisant:

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

Maintenant, lorsque vous en avez besoin dans votre format spécifique, vous pouvez inverser le processus, à savoir:

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

edit - code mis à jour. Pour une raison étrange, DateTime.ParseExact ne jouait pas bien.


Le module python datetime est bon pour récupérer l'heure et convertir les formats d'heure.

import datetime

new_date_format1 = datetime.datetime.strptime('Jun 1 2005  1:33PM', '%b %d %Y %I:%M%p')
new_date_format2 = datetime.datetime.strptime('Jun 1 2005  1:33PM', '%b %d %Y %I:%M%p').strftime('%Y/%m/%d %I:%M%p')
print new_date_format1
print new_date_format2

sortie:

2005-06-01 13:33:00
2005/06/01 01:33PM




c# .net mysql datetime datetime-conversion