This commit is contained in:
Lunny Xiao 2016-03-23 16:17:08 +08:00
parent 769f6b3ae6
commit 3da8f14fc1
1 changed files with 15 additions and 3 deletions

View File

@ -1789,7 +1789,15 @@ func (session *Session) _row2Bean(rows *core.Rows, fields []string, fieldsCount
if d, ok := vv.Interface().([]uint8); ok { if d, ok := vv.Interface().([]uint8); ok {
hasAssigned = true hasAssigned = true
t, err := session.byte2Time(col, d) t, err := session.byte2Time(col, d)
//fmt.Println(string(d), t, err) if err != nil {
session.Engine.LogError("byte2Time error:", err.Error())
hasAssigned = false
} else {
fieldValue.Set(reflect.ValueOf(t).Convert(fieldType))
}
} else if d, ok := vv.Interface().(string); ok {
hasAssigned = true
t, err := session.str2Time(col, d)
if err != nil { if err != nil {
session.Engine.LogError("byte2Time error:", err.Error()) session.Engine.LogError("byte2Time error:", err.Error())
hasAssigned = false hasAssigned = false
@ -2355,8 +2363,8 @@ func (session *Session) InsertMulti(rowsSlicePtr interface{}) (int64, error) {
} }
} }
func (session *Session) byte2Time(col *core.Column, data []byte) (outTime time.Time, outErr error) { func (session *Session) str2Time(col *core.Column, data string) (outTime time.Time, outErr error) {
sdata := strings.TrimSpace(string(data)) sdata := strings.TrimSpace(data)
var x time.Time var x time.Time
var err error var err error
@ -2423,6 +2431,10 @@ func (session *Session) byte2Time(col *core.Column, data []byte) (outTime time.T
return return
} }
func (session *Session) byte2Time(col *core.Column, data []byte) (outTime time.Time, outErr error) {
return session.str2Time(col, string(data))
}
// convert a db data([]byte) to a field value // convert a db data([]byte) to a field value
func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value, data []byte) error { func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value, data []byte) error {
if structConvert, ok := fieldValue.Addr().Interface().(core.Conversion); ok { if structConvert, ok := fieldValue.Addr().Interface().(core.Conversion); ok {