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")