unsupported Scan, storing driver.Value type []uint8 into type *time.Time

unsupported Scan, storing driver.Value type []uint8 into type *time.Time

在 golang 操作数据库中出现
unsupported Scan, storing driver.Value type []uint8 into type *time.Time
错误

如果数据库表里用了 timestamp 的类型,可能在 scan 的时候出现这个问题,解决方法就是
在创建数据库连接的地方,加入 parseTime=true 参数

db, err := sqlx.Connect("mysql", "myuser:mypass@tcp(127.0.0.1:3306)/mydb?parseTime=true")

参考样例

func buildDsn(d Info) string {
	var build strings.Builder
	build.WriteString(d.username)
	build.WriteString(":")
	build.WriteString(d.password)
	build.WriteString("@tcp(")
	build.WriteString(d.host)
	build.WriteString(":")
	build.WriteString(d.port)
	build.WriteString(")/")
	build.WriteString(d.dbname)
	build.WriteString("?charset=")
	build.WriteString(d.charset)
	build.WriteString("&parseTime=true")
	s := build.String()
	return s
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章