Wie behebt man den Fehler „nicht unterstützter Treiber -> Scan-Paar: []uint8 -> *time.Time' beim Parsen der Zeit von MySQL in Go?

Barbara Streisand
Freigeben: 2024-11-10 14:52:02
Original
358 Leute haben es durchsucht

How to Solve Scan-Paar: []uint8 -> *time.Time“ Fehler beim Parsen der Zeit von MySQL in Go? " /> Scan-Paar: []uint8 -> *time.Time" Fehler beim Parsen der Zeit von MySQL in Go? " />

So handhaben Sie die Zeitanalyse aus der Datenbank in Go

Fehler beim Abrufen von Zeitwerten aus einer MySQL-Datenbank können frustrierend sein. In diesem Artikel wird der spezifische Fehler „nicht unterstützter Treiber –>“ behandelt. Scan-Paar: []uint8 -> *time.Time“ und bietet Lösungen unter Verwendung der beliebten go-sql-driver/mysql-Bibliothek.

Lösung: Automatisches Parsen aktivieren

Der go-sql-driver/mysql bietet Unterstützung für das automatische Parsen von DATE- und DATETIME-Spalten in time.Time-Werte, um diese Funktion zu aktivieren, hängen Sie den Parameter „parseTime=true“ an Ihre Verbindungszeichenfolge an. Nach der Aktivierung werden Abfragen wie SELECT current_timestamp() automatisch dem gewünschten Zeitformat zugeordnet.

Benutzerdefiniertes Parsen für bestimmte Fälle

In Fällen, in denen automatisches Parsen nicht geeignet oder nicht verfügbar ist (z. B. Abrufen von current_time()), ist benutzerdefiniertes Parsen erforderlich.

Schritt 1: Erstellen Sie einen benutzerdefinierten Typ

Definieren Sie einen benutzerdefinierten Typ, der Rohbyte-Slices ([]Byte) umschließt und eine Time()-Methode implementiert, um Zeitwerte in time.Time zu analysieren:

type rawTime []byte

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

Schritt 2: Benutzerdefinierten Typ beim Scannen verwenden

Ersetzen Sie in Ihrem Scancode den direkten Verweis auf time.Time durch Ihren benutzerdefinierten Typ:

var myTime rawTime
rows, err = db.Query("SELECT current_time()")
if err = rows.Scan(&myTime); err != nil {
    // Handle error
}
Nach dem Login kopieren

Schritt 3: Rohzeit in analysierte Zeit konvertieren

Rufen Sie abschließend Time() für Ihren benutzerdefinierten Typ auf, um den analysierten Zeitwert abzurufen:

fmt.Println(myTime.Time())
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „nicht unterstützter Treiber -> Scan-Paar: []uint8 -> *time.Time' beim Parsen der Zeit von MySQL in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage