Bagaimana untuk Menghuraikan Data Masa MySQL di Golang?

Mary-Kate Olsen
Lepaskan: 2024-11-21 05:29:14
asal
989 orang telah melayarinya

How to Parse MySQL Time Data in Golang?

MySQL Time Parsing in Golang

Di Golang, pengambilan data masa daripada MySQL boleh menimbulkan cabaran, seperti yang ditunjukkan oleh ralat "unsupported driver -> Imbas pasangan: []uint8 -> *masa." apabila menggunakan coretan kod di bawah:

var my_time time.Time
rows, err := db.Query("SELECT current_time FROM table")
err := rows.Scan(&my_time)
Salin selepas log masuk

Untuk menyelesaikan isu ini, pertimbangkan untuk menggunakan pemacu go-sql-driver/mysql, yang menawarkan pilihan untuk menukar jenis data DATE dan DATETIME secara automatik kepada masa. Masa. Ini boleh dicapai dengan menambahkan parseTime=true pada rentetan sambungan, seperti yang ditunjukkan di bawah:

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

Walau bagaimanapun, jika anda secara khusus memerlukan current_time (bukan current_timestamp), anda perlu menghuraikan data masa secara manual. Di bawah ialah dua pendekatan untuk mencapai perkara ini:

Jenis Penghuraian Masa Tersuai

Buat jenis tersuai, rawTime, yang merangkum kepingan []bait dan menyediakan Time() kaedah untuk menghurai masa:

type rawTime []byte

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

Dalam kod imbasan anda, gunakan rawTime untuk menghuraikan secara automatik current_time:

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

Penghuraian Masa Manual

Daripada bergantung pada jenis tersuai, anda boleh menghuraikan data masa secara manual:

var myTime string
rows, err := db.Query("SELECT current_time()")
if rows.Next() {
    if err = rows.Scan(&myTime); err != nil {
        panic(err)
    }
}
parsedTime, err := time.Parse("15:04:05", myTime)
if err != nil {
    panic(err)
}
fmt.Println(parsedTime)
Salin selepas log masuk

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