我遇到了这个错误:
无法将 MySQL 的日期/时间值转换为 System.DateTime
当我试图从 MySQL 数据库中获取数据时出现了这个错误。 我在我的 MySQL 数据库中使用了 date 类型。但是当我尝试将其检索到我的数据表中时,就出现了上述错误。
我该如何解决?
我遇到了这个错误:
无法将 MySQL 的日期/时间值转换为 System.DateTime
当我试图从 MySQL 数据库中获取数据时出现了这个错误。 我在我的 MySQL 数据库中使用了 date 类型。但是当我尝试将其检索到我的数据表中时,就出现了上述错误。
我该如何解决?
你必须在连接字符串中添加 Convert Zero Datetime=True
,例如:
server=localhost;User Id=root;password=mautauaja;Persist Security Info=True;database=test;Convert Zero Datetime=True
我添加了Convert Zero Datetime=True
和Allow Zero Datetime=True
,现在它可以正常工作。
DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles);
。您只需要设置从数据库返回的日期格式即可,最可能是yyyy-MM-dd HH:mm:ss
。至少对我而言是这样的。DateTime.ParseExact
的更多信息:链接。我也遇到了同样的问题,得到了列名和其类型。然后从表名中转换(col_Name as Char)。通过这种方式,我发现了问题是 '0000-00-00 00:00:00'。我将其更新为有效的日期和时间,我的问题得到了解决。
让MySql将Unix时间戳转换为字符串。使用mysql函数FROM_UNIXTIME( 113283901 )。
<EntityType Name="table">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
<Property Name="date_field" Type="datetime" Precision="0" Nullable="false" />
</EntityType>
MySqlDateTime
对象的IsValidDateTime
属性来帮助确定是否可以将对象转换为DateTime
。MySqlDataReader.GetMySqlDateTime
方法,如下所示:using (MySqlDataReader reader = await MySqlHelper.ExecuteReaderAsync(...))
{
if (await reader.ReadAsync())
{
DateTime? updateTime = reader.GetMySqlDateTime("UpdateTime").IsValidDateTime ? (DateTime?)reader["UpdateTime"] : null;
}
}
Convert Zero Datetime=True;