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

Bagaimana untuk Menyelesaikan 'pemandu tidak disokong -> Pasangan imbasan: []uint8 -> *time.Time' Ralat Semasa Mendapatkan Data Masa daripada MySQL di Golang?

Patricia Arquette
Lepaskan: 2024-11-13 08:46:02
asal
535 orang telah melayarinya

How to Resolve Imbas pasangan: []uint8 -> *time.Time" Ralat Semasa Mendapatkan Data Masa daripada MySQL di Golang? " /> Pasangan imbasan: []uint8 -> *time.Time" Ralat Semasa Mendapatkan Data Masa daripada MySQL di Golang? " />

Memahami Ralat Parse Time daripada Pangkalan Data di Golang

Apabila cuba mendapatkan semula data masa daripada pangkalan data MySQL menggunakan Golang, anda mungkin menghadapi ralat yang serupa dengan yang berikut:

unsupported driver -> Scan pair: []uint8 -> *time.Time
Salin selepas log masuk

Ralat ini timbul kerana kelakuan lalai pemacu Go SQL tidak menghuraikan medan DATE atau DATETIME secara automatik daripada MySQL ke dalam masa Pergi. taip.

Penyelesaian 1: Dayakan Penghuraian Automatik

Untuk menyelesaikan isu ini, anda boleh mendayakan penghuraian automatik dengan menambahkan parseTime=true pada rentetan sambungan pangkalan data anda.

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

Dengan tetapan ini, pemandu akan secara automatik menukar nilai DATE dan DATETIME kepada masa. Objek masa.

Penyelesaian 2: Penghuraian Tersuai

Jika anda menghadapi keperluan penghuraian khusus, anda boleh memilih penghuraian tersuai Untuk melakukan ini:

  • Tentukan jenis tersuai yang membalut []bait dan. termasuk kaedah Time() untuk menghurai.

    type rawTime []byte
    
    func (t rawTime) Time() (time.Time, error) {
      return time.Parse("15:04:05", string(t))
    }
    Salin selepas log masuk
  • Gunakan jenis tersuai anda dalam kod imbasan anda untuk menghuraikan nilai masa secara manual.

    var myTime rawTime
    rows, err := db.Query("SELECT current_time()")
    
    if rows.Next() {
      if err = rows.Scan(&myTime); err != nil {
          panic(err)
      }
    }
    
    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 Mendapatkan Data Masa daripada MySQL di Golang?. 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