Rumah >pembangunan bahagian belakang >Golang >Cara Menghuraikan Masa daripada Pangkalan Data: Mengapakah saya mendapat ralat 'pemacu tidak disokong -> Pasangan imbasan: []uint8 -> *masa.Masa'?

Cara Menghuraikan Masa daripada Pangkalan Data: Mengapakah saya mendapat ralat 'pemacu tidak disokong -> Pasangan imbasan: []uint8 -> *masa.Masa'?

Patricia Arquette
Patricia Arquetteasal
2024-11-12 20:03:02847semak imbas

How to Parse Time from a Database:  Why am I getting the Imbas pasangan: []uint8 -> *time.Time" ralat? " /> Imbas pasangan: []uint8 -> *time.Time" ralat? " />

Masa Menghurai daripada Pangkalan Data: Penyelesaian Masalah dan Penyelesaian

Apabila bekerja dengan pangkalan data, adalah perkara biasa untuk menghadapi ralat semasa cuba mendapatkan data. Dalam kes khusus ini, mesej ralat "tidak disokong pemandu -> Pasangan imbasan: []uint8 -> *time.Time" menunjukkan bahawa pemacu pangkalan data tidak dapat menukar data yang diambil secara automatik (dalam kes ini, tatasusunan bait) kepada masa. Nilai masa.

Untuk membetulkan isu ini, seseorang boleh menggunakan parseTime parameter dalam rentetan sambungan. Menetapkan parseTime=true mengarahkan pemandu untuk menghuraikan nilai DATE dan DATETIME MySQL secara automatik ke dalam objek masa.

Contoh:

db, err := sql.Open("mysql", "root:@/?parseTime=true")

Dengan mendayakan parseTime, pemandu akan menukar nilai masa dengan lancar, membenarkan penetapan terus kepada masa. Pembolehubah masa.

Contoh dengan Pernyataan SQL:

var myTime time.Time
rows, err := db.Query("SELECT current_timestamp()")

Nota: Pendekatan ini berfungsi dengan current_timestamp tetapi bukan current_time Jika anda memerlukan penghuraian data semasa_masa, anda perlu melaksanakan mekanisme penghuraian tersuai.

Penghuraian Tersuai:

    Tentukan jenis tersuai yang membalut jenis data asal untuk mengendalikan penghuraian:
type rawTime []byte

func (t rawTime) Time() (time.Time, error) {
    return time.Parse("15:04:05", string(t))
}
    Gunakan jenis tersuai dalam kod imbasan:
var myTime rawTime
rows, err := db.Query("SELECT current_time()")
    Dapatkan semula masa yang dihuraikan.Nilai masa menggunakan kaedah tersuai:
fmt.Println(myTime.Time())
Dengan mengikut langkah ini, anda boleh menghuraikan nilai masa dengan berkesan daripada pangkalan data dan mengendalikan format data yang berbeza dengan mudah.

Atas ialah kandungan terperinci Cara Menghuraikan Masa daripada Pangkalan Data: Mengapakah saya mendapat ralat 'pemacu tidak disokong -> Pasangan imbasan: []uint8 -> *masa.Masa'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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