Heim >Backend-Entwicklung >Golang >Wie analysiert man die Zeit einer MySQL-Datenbank in Go?

Wie analysiert man die Zeit einer MySQL-Datenbank in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-11-11 00:28:03999Durchsuche

How to Parse Time from a MySQL Database in Go?

Zeit aus einer MySQL-Datenbank in Go analysieren

Wenn Sie versuchen, einen Zeitwert aus einer MySQL-Datenbank mit Go abzurufen, stoßen Sie möglicherweise auf einen „nicht unterstützten Treiber –>“ Fehler „Paar scannen“. Dieses Problem ist auf das Standardverhalten des MySQL-Treibers von Go zurückzuführen, der DATE- und DATETIME-Werte nicht automatisch in time.Time-Objekte konvertiert.

Um dieses Problem zu beheben, fügen Sie parseTime=true zu Ihrer MySQL-Verbindungszeichenfolge hinzu. Dieser Parameter weist den Treiber an, die erforderliche Analyse für Sie durchzuführen.

Beispiel

db, err := sql.Open("mysql", "root:@/?parseTime=true")
if err != nil {
    panic(err)
}
defer db.Close()

var myTime time.Time
rows, err := db.Query("SELECT current_timestamp()")

if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}

fmt.Println(myTime)

Benutzerdefinierte Analyse

Wenn Sie current_timestamp nicht verwenden können und current_time verwenden müssen, werden Sie dies tun Sie müssen das Parsing selbst durchführen.

type rawTime []byte

func (t rawTime) Time() (time.Time, error) {
    return time.Parse("15:04:05", string(t))
}

var myTime rawTime
rows, err := db.Query("SELECT current_time()")

if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}

fmt.Println(myTime.Time())

Dieser benutzerdefinierte Parsing-Typ konvertiert das abgerufene Byte-Slice in ein time.Time-Objekt unter Verwendung eines bestimmten Zeitformats („15:04:05“ in diesem Fall).

Das obige ist der detaillierte Inhalt vonWie analysiert man die Zeit einer MySQL-Datenbank in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn