插入自定义时间,实现了扫描仪和评估器 - 但仍然出错



我有一个自定义时间格式,它是一些自定义解组的结果:

type customTime struct {
    time.Time
}

我已经在这个customTime上实现了ScannerValuer接口,如下所示:

func (ct *customTime) Scan(value interface{}) error {
    ct.Time = value.(time.Time)
    return nil
}
func (ct *customTime) Value() (driver.Value, error) {
    return ct.Time, nil
}

但是当我尝试插入时它仍然出错:

sql:转换 Exec 参数 $3 类型:不支持的类型 main.customTime,一个结构

我错过了什么?

找到解决方案,ScannerValuer应该在实际值上实现,而不是指向customTime的指针

func (ct customTime) Scan(value interface{}) error {
    ct.Time = value.(time.Time)
    return nil
}
func (ct customTime) Value() (driver.Value, error) {
    return ct.Time, nil
}

相关内容

  • 没有找到相关文章

最新更新