Fix test
This commit is contained in:
parent
f234597448
commit
52ab5c818f
|
@ -637,37 +637,44 @@ func (statement *Statement) ConvertSQLOrArgs(sqlOrArgs ...interface{}) (string,
|
||||||
func (statement *Statement) convertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error) {
|
func (statement *Statement) convertSQLOrArgs(sqlOrArgs ...interface{}) (string, []interface{}, error) {
|
||||||
switch sqlOrArgs[0].(type) {
|
switch sqlOrArgs[0].(type) {
|
||||||
case string:
|
case string:
|
||||||
if len(sqlOrArgs) > 1 {
|
if len(sqlOrArgs) <= 1 {
|
||||||
newArgs := make([]interface{}, 0, len(sqlOrArgs)-1)
|
return sqlOrArgs[0].(string), sqlOrArgs[1:], nil
|
||||||
for _, arg := range sqlOrArgs[1:] {
|
}
|
||||||
if v, ok := arg.(time.Time); ok {
|
|
||||||
newArgs = append(newArgs, v.In(statement.defaultTimeZone).Format("2006-01-02 15:04:05"))
|
newArgs := make([]interface{}, 0, len(sqlOrArgs)-1)
|
||||||
} else if v, ok := arg.(*time.Time); ok && v != nil {
|
for _, arg := range sqlOrArgs[1:] {
|
||||||
newArgs = append(newArgs, v.In(statement.defaultTimeZone).Format("2006-01-02 15:04:05"))
|
if v, ok := arg.(time.Time); ok {
|
||||||
} else if v, ok := arg.(convert.ConversionTo); ok {
|
newArgs = append(newArgs, v.In(statement.defaultTimeZone).Format("2006-01-02 15:04:05"))
|
||||||
r, err := v.ToDB()
|
} else if v, ok := arg.(*time.Time); ok && v != nil {
|
||||||
if err != nil {
|
newArgs = append(newArgs, v.In(statement.defaultTimeZone).Format("2006-01-02 15:04:05"))
|
||||||
return "", nil, err
|
} else if v, ok := arg.(convert.ConversionTo); ok {
|
||||||
}
|
r, err := v.ToDB()
|
||||||
if r != nil {
|
if err != nil {
|
||||||
// for nvarchar column on mssql, bytes have to be converted as ucs-2 external of driver
|
return "", nil, err
|
||||||
// for binary column, a string will be converted as bytes directly. So we have to
|
}
|
||||||
// convert bytes as string
|
if r != nil {
|
||||||
if statement.dialect.URI().DBType == schemas.MSSQL {
|
// for nvarchar column on mssql, bytes have to be converted as ucs-2 external of driver
|
||||||
newArgs = append(newArgs, string(r))
|
// for binary column, a string will be converted as bytes directly. So we have to
|
||||||
} else {
|
// convert bytes as string
|
||||||
newArgs = append(newArgs, r)
|
if statement.dialect.URI().DBType == schemas.MSSQL {
|
||||||
}
|
newArgs = append(newArgs, string(r))
|
||||||
} else {
|
} else {
|
||||||
newArgs = append(newArgs, nil)
|
newArgs = append(newArgs, r)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
newArgs = append(newArgs, arg)
|
newArgs = append(newArgs, nil)
|
||||||
}
|
}
|
||||||
|
} else if v, ok := arg.(driver.Valuer); ok {
|
||||||
|
vv, err := v.Value()
|
||||||
|
if err != nil {
|
||||||
|
return "", nil, err
|
||||||
|
}
|
||||||
|
newArgs = append(newArgs, vv)
|
||||||
|
} else {
|
||||||
|
newArgs = append(newArgs, arg)
|
||||||
}
|
}
|
||||||
return sqlOrArgs[0].(string), newArgs, nil
|
|
||||||
}
|
}
|
||||||
return sqlOrArgs[0].(string), sqlOrArgs[1:], nil
|
return sqlOrArgs[0].(string), newArgs, nil
|
||||||
case *builder.Builder:
|
case *builder.Builder:
|
||||||
return sqlOrArgs[0].(*builder.Builder).ToSQL()
|
return sqlOrArgs[0].(*builder.Builder).ToSQL()
|
||||||
case builder.Builder:
|
case builder.Builder:
|
||||||
|
|
Loading…
Reference in New Issue