diff --git a/docs/QuickStart.md b/docs/QuickStart.md index fab06ead..2595c743 100644 --- a/docs/QuickStart.md +++ b/docs/QuickStart.md @@ -440,16 +440,23 @@ has, err := engine.Get(user) 1) 传入Slice用于返回数据 ```Go -var everyone []Userinfo +everyone := make([]Userinfo, 0) err := engine.Find(&everyone) + +pEveryOne := make([]*Userinfo, 0) +err := engine.Find(&pEveryOne) ``` + 2) 传入Map用户返回数据,map必须为`map[int64]Userinfo`的形式,map的key为id ```Go users := make(map[int64]Userinfo) err := engine.Find(&users) + +pUsers := make(map[int64]*Userinfo) +err := engine.Find(&pUsers) ``` -3) 也可以加入条件 +3) 也可以加入各种条件 ```Go users := make([]Userinfo, 0) err := engine.Where("age > ? or name=?)", 30, "xlw").Limit(20, 10).Find(&users) diff --git a/session.go b/session.go index 5d13af68..8edabf41 100644 --- a/session.go +++ b/session.go @@ -1522,7 +1522,7 @@ func (session *Session) bytes2Value(col *Column, fieldValue *reflect.Value, data //Now only support Time type case reflect.Struct: if fieldValue.Type().String() == "time.Time" { - sdata := string(data) + sdata := strings.TrimSpace(string(data)) var x time.Time var err error // time stamp @@ -1543,6 +1543,9 @@ func (session *Session) bytes2Value(col *Column, fieldValue *reflect.Value, data } st := fmt.Sprintf("2006-01-02 %v", sdata) x, err = time.Parse("2006-01-02 15:04:05", st) + } else if sdata == "0000-00-00 00:00:00" { + var t time.Time + x = t } else { return errors.New(fmt.Sprintf("unsupported time format %v", string(data))) }