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? " />
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.
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.
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)) }
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 }
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())
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!