问题
golang中time.Time类型直接存储到mysql报错,如下:
sql: Scan error on column index 5, name "created_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time
原因
golang中time.Time为2018-12-24 18:00:00 CST
mysql中timestamp为22018-12-24 18:00:00
golang从mysql获取解析成 time.Time为2018-12-24 18:00:00 UTC
解决方法
开启解析时间parseTime,在mysql连接的dsn中添加 parseTime=true,如下:
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=true&loc=Local")