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

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