对接mysql数据库遇见的一些问题

环境:asp.net mvc 用MySql.Data查询别人家的库

1.mysql数据库中保存的日期,可以是int类型,叫什么什么时间戳,我也不知道为什么保存成这种格式

为了转换成DateTime格式,还需要一个sql函数:

SELECT id,title,writer,from_unixtime(`pubdate`) pubdate FROM dede_archives order by pubdate desc LIMIT 0,10

更奇怪的是from_unixtime(`pubdate`),里面的`是英文状态下Esc键下面的那个键,用普通的英文引号转换的日期是默认的日期“1970……”

2.dede_archives表中一个字段shorttitle的类型是char(36),这导致连接器把该类型当做guid类型,提示如下:

System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
at System.Guid..ctor(String g)
at MySql.Data.Types.MySqlGuid.MySql.Data.Types.IMySqlValue.ReadValue(MySqlPacket packet, Int64 length, Boolean nullVal)
at MySql.Data.MySqlClient.NativeDriver.ReadColumnValue(Int32 index, MySqlField field, IMySqlValue valObject)
at MySql.Data.MySqlClient.ResultSet.ReadColumnData(Boolean outputParms)
at MySql.Data.MySqlClient.ResultSet.NextRow(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlDataReader.Read()

详情请参考:MySQL中char(36)被认为是GUID导致的BUG及解决方案

posted @ 2014-07-28 18:13  豆角米饭  阅读(494)  评论(0编辑  收藏  举报