golang时间从数据库读取时间
发布时间:2020-12-16 18:24:25 所属栏目:大数据 来源:网络整理
导读:golang从数据库读取时间,如果遇到时间为Null,那么可以采用类似NullInt64的方法! package mainimport ("database/sql/driver""encoding/json""fmt""time")type NullTime struct {Time time.TimeValid bool // 是否有值}//实现它的赋值方法(注意,这个方属
golang从数据库读取时间,如果遇到时间为Null,那么可以采用类似NullInt64的方法! package main import ( "database/sql/driver" "encoding/json" "fmt" "time" ) type NullTime struct { Time time.Time Valid bool // 是否有值 } //实现它的赋值方法(注意,这个方属于指针) func (nt *NullTime) Scan(value interface{}) error { nt.Time,nt.Valid = value.(time.Time) return nil } //实现它的取值方式 func (nt NullTime) Value() (driver.Value,error) { if !nt.Valid { return nil,nil } return nt.Time,nil } func (this NullTime) MarshalJSON() ([]byte,error) { if this.Valid { var stamp = fmt.Sprintf(""%s"",time.Time(this.Time).Format("2006-01-02 15:04:05")) return []byte(stamp),nil } else { return nil,nil } } func main() { var t NullTime t.Scan(nil) body,_ := json.Marshal(t) fmt.Printf("%s",string(body)) t.Scan(time.Now()) body,_ = json.Marshal(t) fmt.Printf("%s",string(body)) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |