adding sqlserver, mysql to function

This commit is contained in:
Leandro Franciscato 2022-10-17 12:19:47 -03:00
parent 0b5404da32
commit 706912ec97
2 changed files with 12 additions and 4 deletions

View File

@ -8,8 +8,10 @@ import (
type Database string
var (
Postgres Database = "postgres"
Sqlite Database = "sqlite"
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 ""

View File

@ -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 {