我有一个自定义时间格式,它是一些自定义解码的结果:
type customTime struct {
time.Time
}
我已经在这个 customTime
上实现了 Scanner
和 Valuer
接口(interface),如下所示:
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: converting Exec argument $3 type: unsupported type main.customTime, a struct
我错过了什么?
最佳答案
找到解决方案,Scanner
和 Valuer
应该在实际值上实现,而不是指向 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
}
关于go - 插入自定义时间,实现了 Scanner 和 Valuer——但仍然出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44638610/