Imbas pasangan: []uint8 -> *time.Time" Ralat Semasa Menghuraikan Masa daripada MySQL dalam Go? " /> Imbas pasangan: []uint8 -> *time.Time" Ralat Semasa Menghuraikan Masa daripada MySQL dalam Go? " />
Menghadapi ralat semasa mendapatkan nilai masa daripada pangkalan data MySQL boleh mengecewakan. Artikel ini menangani ralat khusus "pemandu tidak disokong -> Pasangan imbasan: []uint8 -> *time.Time" dan menyediakan penyelesaian menggunakan perpustakaan go-sql-driver/mysql yang popular.
go-sql-driver/mysql menawarkan sokongan untuk penghuraian automatik daripada lajur DATE dan DATETIME ke dalam nilai masa. Untuk mendayakan ciri ini, tambahkan parameter "parseTime=true" pada rentetan sambungan anda. Setelah didayakan, pertanyaan seperti SELECT current_timestamp() akan dipetakan secara automatik kepada format masa yang diingini.
Untuk kes di mana penghuraian automatik tidak sesuai atau tidak tersedia (cth., mendapatkan semula current_time ()), penghuraian tersuai diperlukan.
Langkah 1: Buat Tersuai Taip
Tentukan jenis tersuai yang membalut hirisan bait mentah ([]bait) dan melaksanakan kaedah Masa() untuk menghuraikan nilai masa ke dalam masa.Masa Contohnya:
type rawTime []byte func (t rawTime) Time() (time.Time, error) { return time.Parse("15:04:05", string(t)) }
Langkah 2: Gunakan Jenis Tersuai dalam Imbasan
Dalam kod imbasan anda, gantikan rujukan terus kepada masa.Masa dengan jenis tersuai anda:
var myTime rawTime rows, err = db.Query("SELECT current_time()") if err = rows.Scan(&myTime); err != nil { // Handle error }
Langkah 3: Tukar Masa Mentah kepada Masa Dihuraikan
Akhir sekali, panggil Masa() pada jenis tersuai anda untuk mendapatkan semula nilai masa yang dihuraikan:
fmt.Println(myTime.Time())
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'pemandu tidak disokong -> Pasangan imbasan: []uint8 -> *time.Time' Ralat Semasa Menghuraikan Masa daripada MySQL dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!