package sqlite import ( "time" "github.com/spf13/cast" ) // 输入数字为毫秒值或文本或time.Time func MSTimeStampValue(v interface{}) time.Time { var ms int64 switch tv := v.(type) { case time.Time: return tv case float32: ms = int64(tv) case float64: ms = int64(tv) case int: ms = int64(tv) case int8: ms = int64(tv) case int16: ms = int64(tv) case int32: ms = int64(tv) case int64: ms = tv case uint: ms = int64(tv) case uint8: ms = int64(tv) case uint16: ms = int64(tv) case uint32: ms = int64(tv) case uint64: ms = int64(tv) default: return cast.ToTimeInDefaultLocation(v, time.Local) } return time.Unix(0, ms*1000000) } // 输入数字为纳秒值或文本或time.Time func NSTimeStampValue(v interface{}) time.Time { var ns int64 switch tv := v.(type) { case time.Time: return tv case float32: ns = int64(tv) case float64: ns = int64(tv) case int: ns = int64(tv) case int8: ns = int64(tv) case int16: ns = int64(tv) case int32: ns = int64(tv) case int64: ns = tv case uint: ns = int64(tv) case uint8: ns = int64(tv) case uint16: ns = int64(tv) case uint32: ns = int64(tv) case uint64: ns = int64(tv) default: return cast.ToTimeInDefaultLocation(v, time.Local) } return time.Unix(0, ns) }