adding sqlserver, mysql to function
This commit is contained in:
parent
0b5404da32
commit
706912ec97
@ -10,6 +10,8 @@ type Database string
|
||||
var (
|
||||
Postgres Database = "postgres"
|
||||
Sqlite Database = "sqlite"
|
||||
Mysql Database = "mysql"
|
||||
SqlServer Database = "sqlserver"
|
||||
)
|
||||
|
||||
type Function interface {
|
||||
@ -33,6 +35,10 @@ func (fnc FuncDateWithoutTime) GetSql() string {
|
||||
fnc.SQL = fmt.Sprintf(" to_char(%s, %s) as %s", fnc.Field, "'YYYY-MM-DD'", alias)
|
||||
case Sqlite:
|
||||
fnc.SQL = fmt.Sprintf(" strftime(%s, %s) as %s", "'%Y-%m-%d' ", fnc.Field, alias)
|
||||
case Mysql:
|
||||
fnc.SQL = fmt.Sprintf(" DATE_FORMAT(%s, %s) as %s", fnc.Field, "'%Y-%m-%d' ", alias)
|
||||
case SqlServer:
|
||||
fnc.SQL = fmt.Sprintf(" FORMAT(%s, %s) as %s", fnc.Field, "'yyyy-MM-dd' ", alias)
|
||||
default:
|
||||
log.Print("database not implemented yet for this function")
|
||||
return ""
|
||||
|
@ -1360,7 +1360,7 @@ func TestQueryResetNullValue(t *testing.T) {
|
||||
AssertEqual(t, q2, qs[1])
|
||||
}
|
||||
|
||||
func TestFuncDateWihtoutTimeSQLITE(t *testing.T) {
|
||||
func TestFuncDateWihtoutTime(t *testing.T) {
|
||||
users := []User{
|
||||
*GetUser("find", Config{}),
|
||||
*GetUser("find", Config{}),
|
||||
@ -1376,8 +1376,10 @@ func TestFuncDateWihtoutTimeSQLITE(t *testing.T) {
|
||||
Birthday string
|
||||
Name string
|
||||
}
|
||||
var fn clause.FuncDateWithoutTime = clause.FuncDateWithoutTime{Database: "sqlite", Field: "birthday"}
|
||||
|
||||
var fn clause.FuncDateWithoutTime = clause.FuncDateWithoutTime{Database: clause.Database(DB.Dialector.Name()), Field: "birthday"}
|
||||
var sql string = fn.GetSql()
|
||||
|
||||
if err := DB.Model(&User{}).Select([]string{sql, "name"}).Where("name = ?", "find").First(&first).Error; err != nil {
|
||||
t.Errorf("errors happened when query first: %v", err)
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user