无法将MySQL日期/时间值转换为System.DateTime

Gop*_*opi 12 c# mysql datetime ibatis date

我正在使用ibatis和C#.我从具有CreatedDate作为字段之一的选择查询中获得结果.Mysql中CreatedDate的数据类型是Date.我将select查询的结果集分配给Ilist <DeliveryClass>.

这里的DeliveryClass CreatedDate为DateTime.当我运行应用程序时,我 无法将MySQL日期/时间值转换为System.DateTime.可能是什么问题呢?

小智 81

MySqlConnection connect = new MySqlConnection("server=localhost; database=luttop; user=root; password=1234; pooling = false; convert zero datetime=True");
Run Code Online (Sandbox Code Playgroud)

添加convert zero datetime=True到连接字符串将自动将0000-00-00Date值转换为DateTime.MinValue().

这已经解决了

  • 这是比选择的更好的解决方案。 (2认同)

psa*_*tos 9

将"convert zero datetime = True"添加到连接字符串解决了我的问题.

<connectionStrings>   <add name="MyContext" connectionString="Datasource=localhost;Database=MyAppDb;Uid=root;Pwd=root;CHARSET=utf8;convert zero datetime=True" providerName="MySql.Data.MySqlClient" /> </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

问候PS


Amg*_*hmi 6

格式中的问题,实际上mysql对于日期/时间数据类型有不同的格式(yyyy-mm-dd)并且为了解决这个问题,请从这里使用.net的mysql连接器库 http://dev.mysql.com/downloads/connector/net / 它将为日期/时间提供名为MysqlDateTime的其他数据类型

或者您可以使用DATE_FORMAT(日期,格式)格式化sql语句中的日期/时间数据,您可以从此处获取更多详细信息 http://dev.mysql.com/doc/refman/5.1/en/date-and-time -functions.html#function_date格式

但我不推荐这个,因为你会失去日期/时间数据类型的力量(例如你无法比较),因为现在你将它转换为字符串,但我认为它将在报告中有用


小智 6

我通过将列的默认值设置为null数据而不是使用0000-00-00 00:00:00以下内容来解决我的问题:

update table set date = null
Run Code Online (Sandbox Code Playgroud)