..."/> ...">

Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghuraikan Data Masa MySQL di Golang?

Bagaimana untuk Menghuraikan Data Masa MySQL di Golang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-21 05:29:141034semak imbas

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)

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")

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))
}

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())

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)

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!

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