go get github.com/go-sql-driver/mysql
import ( "database/sql" _ "github.com/go-sql-driver/mysql" )
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname") if err != nil { panic(err.Error()) } defer db.Close() err = db.Ping() if err != nil { panic(err.Error()) }
age := 27 rows, err := db.Query("SELECT name FROM users WHERE age=?", age) if err != nil { log.Fatalln(err) } defer rows.Close() for rows.Next() { var name string if err := rows.Scan(&name); err != nil { log.Fatalln(err) } fmt.Printf("%s is %d\n", name, age) } if err := rows.Err(); err != nil { log.Fatalln(err) }
执行Rows.Scan()时报告错误mysql
sql: Scan error on column index 1: unsupported Scan, storing driver.Value type []uint8 into type *time.Time
缘由是在调用sql.Open()时没有将parseTime设置为True。加入parseTime便可修复问题:git
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?parseTime=true")