Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan 'pemandu tidak disokong -> Pasangan imbasan: []uint8 -> *time.Time' Ralat Semasa Menghuraikan Masa daripada MySQL dalam Go?

Bagaimana untuk Menyelesaikan 'pemandu tidak disokong -> Pasangan imbasan: []uint8 -> *time.Time' Ralat Semasa Menghuraikan Masa daripada MySQL dalam Go?

Barbara Streisand
Lepaskan: 2024-11-10 14:52:02
asal
486 orang telah melayarinya

How to Solve 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? " />

Cara Mengendalikan Penghuraian Masa daripada Pangkalan Data 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.

Penyelesaian: Dayakan Penghuraian Automatik

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.

Penghuraian Tersuai untuk Kes Tertentu

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))
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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())
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan