check destination type whether it's *time.Time or not.
This commit is contained in:
parent
65fd601635
commit
f86c8f208d
21
sqlite3.go
21
sqlite3.go
|
@ -324,20 +324,27 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error {
|
||||||
case C.SQLITE_TEXT:
|
case C.SQLITE_TEXT:
|
||||||
var err error
|
var err error
|
||||||
s := C.GoString((*C.char)(unsafe.Pointer(C.sqlite3_column_text(rc.s.s, C.int(i)))))
|
s := C.GoString((*C.char)(unsafe.Pointer(C.sqlite3_column_text(rc.s.s, C.int(i)))))
|
||||||
if rc.decltype[i] == "timestamp" || rc.decltype[i] == "datetime" {
|
|
||||||
dest[i], err = time.Parse(SQLiteTimestampFormat, s)
|
switch dest[i].(type) {
|
||||||
if err != nil {
|
case *time.Time:
|
||||||
dest[i], err = time.Parse(SQLiteDateFormat, s)
|
if rc.decltype[i] == "timestamp" || rc.decltype[i] == "datetime" {
|
||||||
|
dest[i], err = time.Parse(SQLiteTimestampFormat, s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dest[i], err = time.Parse(SQLiteDatetimeFormat, s)
|
dest[i], err = time.Parse(SQLiteDateFormat, s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dest[i] = s
|
dest[i], err = time.Parse(SQLiteDatetimeFormat, s)
|
||||||
|
if err != nil {
|
||||||
|
dest[i] = s
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
dest[i] = s
|
||||||
}
|
}
|
||||||
} else {
|
default:
|
||||||
dest[i] = s
|
dest[i] = s
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue