go使用各种orm时无法映射time.Time类型的解决方案
问题现象
无论是使用各种 ORM 工具(sqlx,xorm,gorm 等)访问 MySQL 时,当将记录集映射为结构体的时候,当结构体中有属性类型是time.Time
的时候,总是报unsupported Scan, storing driver.Value type []uint8 into type *time.Time
的错误,并且结构体中的 time.Time 类型字段被设置为默认零值。
解决方案
解决方法是使用 MySQL 驱动程序自带的解析 Time 的功能。即在数据库连接串中增加
db_name?charset=utf8&parseTime=true
即可。 网络上的各种各样复杂的方案都没这个方法简单。