我有一个 DbCommand
这样创造出来的。
DbCommand cmd = conn.CreateCommand();
然后我创建 cmd.CommandText
格式的。
"Insert into myTable (`Id`,`myDate`) values (@p0,@p1)"
在处理第二个参数(在创建第一个参数之后)时,我有如下形式的代码。
var p2 = command.CreateParameter();
p2.ParameterName = "@p2";
p2.Value = myDateTimeObject; //not a string but an actual DateTime object
command.Parameters.Add(p2);
在我的代码中,我要执行以下部分 DbCommand
变量。
int result = cmd.ExecuteNonQuery();
当我实际执行它时,它成功地创建了下面的语句,但是当mysql尝试执行它时,这个语句会出错。
Insert into myTable (`Id`,`myDate`) values (1,'27/08/2018 16:50:30')
当我看到错误时,它是下面的。
错误代码:1292。datetime值不正确:“27/08/2018 16:50:30”用于第1行的“mydate”列0.000秒
我能做些什么来确保它用mysql可以接受的有效sql运行吗?如果有必要,我很乐意提供更多的信息。
1条答案
按热度按时间xggvc2p61#
我猜你是在一个非-
en-US
并且遇到了mysql bug#80011。一种解决方法是格式化
DateTime
mysql服务器可以理解的格式:另一种解决方法是切换到其他没有此错误的mysql ado.net连接器,例如mysqlconnector。