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
329 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!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan