使用C#转换DateTime for MySQL

我想在C#中更改MySQL的DateTime。 我的MySQL数据库只接受这种格式
1976-04-09 22:10:00
。 在C#中有一个具有日期值的字符串:
string str = "12-Apr-1976 22:10";
我想转换为MySQL,然后它看起来像:
1976-04-12 22:10
我如何使用
dd mm hh yy
方法更改它们或其他程序员如何做到这一点?谁能告诉我他们的情况?     
已邀请:
请记住,您可以硬编码ISO格式
string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm:ss");
或使用下一个:
// 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)
等等     
如果DateTime的字符串格式是固定的,您可以转换为
System.DateTime
使用:
string myDate = "12-Apr-1976 22:10";
DateTime dateValue = DateTime.Parse(myDate);
现在,当您以特定格式需要它时,您可以反转该过程,即:
string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm");
编辑 - 更新的代码。由于一些奇怪的原因,DateTime.ParseExact并不是很好玩。     
我强烈建议您使用参数化查询,而不是首先将值作为字符串发送。 这样你只需要能够将输入格式转换为
DateTime
DateTimeOffset
,然后你就不用担心数据库格式了。这不仅更简单,而且避免了SQL注入攻击(例如,对于字符串值),并且在面对数据库设置更改时更加健壮。 对于原始转换为
DateTime
,我建议您使用
DateTime.ParseExact
DateTime.TryParseExact
明确指定预期格式。     
这对我有用: 1.从oracle数据库中提取日期并将其传递给变量
 string lDat_otp = "";

  if (rw_mat["dat_otp"].ToString().Length <= 0)
  {
      lDat_otp = "";
  }
  else
  {
      lDat_otp = rw_mat["dat_otp"].ToString();
  }
2.转换为mysql格式
DateTime dateValue = DateTime.Parse(lDat_otp);
string formatForMySql = dateValue.ToString("yyyy-MM-dd HH:mm");
3.Pass formatForMySql变量到过程或其他东西     

要回复问题请先登录注册