1 回答

TA贡献1772条经验 获得超8个赞
您需要一个自定义int64类型,以便您可以让它实现sql.Scanner接口。
type Timestamp int64
func (ts *Timestamp) Scan(src interface{}) error {
switch v := src.(type) {
case time.Time:
*ts = Timestamp(v.Unix())
case []byte:
// ...
case string:
// ...
}
return nil
}
有了这个,您可以在扫描结果时使用转换:
type Record struct {
Date int64
}
var r Record
if err := db.QueryRow("select data from table").Scan((*Timestamp)(&r.Date)); err != nil {
panic(err)
}
或者您可以在结构定义中更改字段的类型,然后您可以直接扫描到该字段:
type Record struct {
Date Timestamp
}
var r Record
if err := db.QueryRow("select data from table").Scan(&r.Date); err != nil {
panic(err)
}
- 1 回答
- 0 关注
- 226 浏览
添加回答
举报