From ddd0a90c53c47d2e230713e39e1e1a16d154a3fe Mon Sep 17 00:00:00 2001 From: Leon Zhang Date: Mon, 24 Dec 2018 23:48:19 +0800 Subject: [PATCH] add mymysql.TimeString single function into mysql.go --- database/mysql.go | 15 +++++++++++++++ database/sampling.go | 3 +-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/database/mysql.go b/database/mysql.go index f3a48c0..ef3ab9c 100644 --- a/database/mysql.go +++ b/database/mysql.go @@ -23,6 +23,7 @@ import ( "regexp" "strconv" "strings" + "time" "github.com/XiaoMi/soar/common" @@ -287,3 +288,17 @@ func (db *Connector) dangerousQuery(query string) bool { return false } + +// Sandard MySQL datetime format +const TimeFormat = "2006-01-02 15:04:05.000000000" + +// TimeString returns t as string in MySQL format Converts time.Time zero to MySQL zero. +func TimeString(t time.Time) string { + if t.IsZero() { + return "0000-00-00 00:00:00" + } + if t.Nanosecond() == 0 { + return t.Format(TimeFormat[:19]) + } + return t.Format(TimeFormat) +} diff --git a/database/sampling.go b/database/sampling.go index 51a98cb..0d63958 100644 --- a/database/sampling.go +++ b/database/sampling.go @@ -23,7 +23,6 @@ import ( "time" "github.com/XiaoMi/soar/common" - "github.com/ziutek/mymysql/mysql" ) /*-------------------- @@ -135,7 +134,7 @@ func (db *Connector) startSampling(onlineConn *sql.DB, database, table string, w case "TIMESTAMP", "DATETIME": t, err := time.Parse(time.RFC3339, string(val)) common.LogIfWarn(err, "") - values = append(values, fmt.Sprintf(`"%s"`, mysql.TimeString(t))) + values = append(values, fmt.Sprintf(`"%s"`, TimeString(t))) default: values = append(values, fmt.Sprintf(`unhex("%s")`, fmt.Sprintf("%x", val))) } -- GitLab