From 6e70297bc853feeb5f49289fffa3a1b1a8692574 Mon Sep 17 00:00:00 2001 From: DrWrong Date: Tue, 5 Jun 2018 15:59:16 +0800 Subject: [PATCH 1/2] Convert args to database time --- session_raw.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/session_raw.go b/session_raw.go index 69bf9b3c..e796c564 100644 --- a/session_raw.go +++ b/session_raw.go @@ -21,9 +21,28 @@ func (session *Session) queryPreprocess(sqlStr *string, paramStr ...interface{}) session.lastSQLArgs = paramStr } +func (session *Session) argsConverter(args ...interface{}) []interface{} { + if session.engine.DatabaseTZ == nil { + return args + } + for i, arg := range args { + switch t := arg.(type) { + case time.Time: + args[i] = t.In(session.engine.DatabaseTZ) + case *time.Time: + if t != nil { + dbTime := t.In(session.engine.DatabaseTZ) + args[i] = &dbTime + } + } + } + return args +} + func (session *Session) queryRows(sqlStr string, args ...interface{}) (*core.Rows, error) { defer session.resetStatement() + args = session.argsConverter(args) session.queryPreprocess(&sqlStr, args...) if session.engine.showSQL { @@ -150,7 +169,7 @@ func (session *Session) queryBytes(sqlStr string, args ...interface{}) ([]map[st func (session *Session) exec(sqlStr string, args ...interface{}) (sql.Result, error) { defer session.resetStatement() - + args = session.argsConverter(args) session.queryPreprocess(&sqlStr, args...) if session.engine.showSQL { From 7940dab1ace56070a846e5332cf734f802ffc4fc Mon Sep 17 00:00:00 2001 From: DrWrong Date: Mon, 11 Jun 2018 22:04:58 +0800 Subject: [PATCH 2/2] Modify --- session_raw.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/session_raw.go b/session_raw.go index e796c564..8e6b21dd 100644 --- a/session_raw.go +++ b/session_raw.go @@ -31,8 +31,7 @@ func (session *Session) argsConverter(args ...interface{}) []interface{} { args[i] = t.In(session.engine.DatabaseTZ) case *time.Time: if t != nil { - dbTime := t.In(session.engine.DatabaseTZ) - args[i] = &dbTime + args[i] = t.In(session.engine.DatabaseTZ) } } }