登录
首页 >  Golang >  Go问答

扫描十进制数字的方法

来源:stackoverflow

时间:2024-03-23 13:03:32 270浏览 收藏

扫描十进制数字时遇到困难,错误提示为“不支持扫描,将 driver.value 类型 []uint8 存储为类型 *big.rat”。文章提供了解决方案,建议使用 NullFloat64 类型(可能为 null 的 float64),并提供了一个代码示例。

问题内容

我正在尝试创建一个传递 id 的 get 函数。

我有一个名为“salary”的列,我将其定义为 decimal (13,2)

在 go 中,我尝试在 int、int68、big.rat 的结构中定义此属性,但是当我进行扫描时,我收到:

2019/07/13 00:05:25 sql: 列索引 6 上扫描错误,名称“salary”: 不支持扫描,将 driver.value 类型 []uint8 存储为类型 *big.rat

我的获取函数:

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

我的数据库连接字符串没有解析时间:

connectionString := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&collation=utf8mb4_unicode_ci&multiStatements=true", user, password, serverName, dbName)

解决方案


您应该能够使用 NullFloat64 类型(可能为 null 的 float64),如 in here

var dec sql.NullFloat64
row.Scan(&dec)

今天关于《扫描十进制数字的方法》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>