插入自定义时间,实施扫描仪和估价器 - 但仍然是错误的

时间:2017-06-19 19:39:03

标签: go go-gorm

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

type customTime struct {
    time.Time
}

我已在此Scanner上实施了ValuercustomTime界面,如下所示:

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,一个结构

我错过了什么?

1 个答案:

答案 0 :(得分:0)

找到解决方案,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
}