1 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要一個(gè)自定義int64類(lèi)型,以便您可以讓它實(shí)現(xiàn)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
}
有了這個(gè),您可以在掃描結(jié)果時(shí)使用轉(zhuǎn)換:
type Record struct {
Date int64
}
var r Record
if err := db.QueryRow("select data from table").Scan((*Timestamp)(&r.Date)); err != nil {
panic(err)
}
或者您可以在結(jié)構(gòu)定義中更改字段的類(lèi)型,然后您可以直接掃描到該字段:
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 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)