首页 > 代码库 > 对接mysql数据库遇见的一些问题
对接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及解决方案