我正在尝试创建一个传递ID的get函数。
我有一个名为“工资”的列,我将其定义为DECIMAL(13,2)
在Go中,我尝试在int,int68,big.Rat中的struct中定义此属性,但是当我进行扫描时,我会收到:
2019/07/13 00:05:25 sql:列索引6扫描错误,名称为“ Salary”: 不支持的扫描,存储driver.Value类型[] uint8到类型* big.Rat
我的get函数:
func (app *App) getFuncionary(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
Id, ok := vars["Id"]
if !ok {
log.Println("No one id found")
}
dbdata := &Funcionary{}
err := app.Database.QueryRow("SELECT Id,Data,xx,xxy,xxxx,xxxxx,Salario,xxxxxx FROM `funcionarys` WHERE Id = ?", Id).Scan(&dbdata.Id, &dbdata.Data, &xx, &xxy, &xxxx, &dbdata.xxxxx, &dbdata.Salario, &dbdata.xxxxxx)
if err != nil {
log.Fatal(err)
}
log.Println("You fetched a thing!")
w.WriteHeader(http.StatusOK)
if err := json.NewEncoder(w).Encode(dbdata); err != nil {
panic(err)
}
}
我的数据库连接字符串没有parsetime:
connectionString := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&collation=utf8mb4_unicode_ci&multiStatements=true", user, password, serverName, dbName)
答案 0 :(得分:0)
您应该可以使用NullFloat64
类型的in here类型(可能为null的float64)
var dec sql.NullFloat64
row.Scan(&dec)