第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang DB反/序列化方法(數(shù)據(jù)庫(kù)/sql之上的sqlx)

Golang DB反/序列化方法(數(shù)據(jù)庫(kù)/sql之上的sqlx)

Go
慕田峪9158850 2022-06-01 15:48:05
我Timestamp在數(shù)據(jù)庫(kù)中有一個(gè)列和一個(gè)結(jié)構(gòu),該結(jié)構(gòu)的類(lèi)型int64應(yīng)該將該列加載為整數(shù)時(shí)間戳。詢(xún)問(wèn):select date from table;錯(cuò)誤:sql: Scan error on column index 1, name "date": converting driver.Value type time.Time ("2019-04-14 21:49:59.159317 +0000 +0000") to a int64: invalid syntax有沒(méi)有辦法在結(jié)構(gòu)上定義序列化方法,而不是將時(shí)間戳轉(zhuǎn)換int64為查詢(xún)級(jí)別(extract epoch...)。
查看完整描述

1 回答

?
料青山看我應(yīng)如是

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)

}


查看完整回答
反對(duì) 回復(fù) 2022-06-01
  • 1 回答
  • 0 關(guān)注
  • 224 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)