Bagaimana untuk Menghuraikan Masa dari Pangkalan Data MySQL dalam Go?

Barbara Streisand
Lepaskan: 2024-11-11 00:28:03
asal
965 orang telah melayarinya

How to Parse Time from a MySQL Database in Go?

Masa Menghuraikan daripada Pangkalan Data MySQL dalam Go

Apabila cuba mendapatkan nilai masa daripada pangkalan data MySQL menggunakan Go, anda mungkin menghadapi "pemandu tidak disokong -> Ralat pasangan imbas". Isu ini berpunca daripada tingkah laku lalai pemacu MySQL Go yang tidak menukar nilai DATE dan DATETIME secara automatik kepada masa. Objek masa.

Untuk menyelesaikan isu ini, tambah parseTime=true pada rentetan sambungan MySQL anda. Parameter ini mengarahkan pemandu untuk melakukan penghuraian yang diperlukan untuk anda.

Contoh

db, err := sql.Open("mysql", "root:@/?parseTime=true")
if err != nil {
    panic(err)
}
defer db.Close()

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

if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}

fmt.Println(myTime)
Salin selepas log masuk

Penghuraian Tersuai

Jika anda tidak boleh menggunakan cap_masa semasa dan mesti menggunakan masa_masa, anda akan perlu melakukan penghuraian sendiri.

type rawTime []byte

func (t rawTime) Time() (time.Time, error) {
    return time.Parse("15:04:05", string(t))
}

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

Jenis penghuraian tersuai ini menukarkan hirisan bait diambil ke dalam masa. Objek masa menggunakan format masa tertentu ("15:04:05" dalam kes ini).

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Masa dari Pangkalan Data 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