Go에서 MySQL 데이터베이스의 시간을 어떻게 구문 분석하나요?

Barbara Streisand
풀어 주다: 2024-11-11 00:28:03
원래의
937명이 탐색했습니다.

How to Parse Time from a MySQL Database in Go?

Go에서 MySQL 데이터베이스의 시간 구문 분석

Go를 사용하여 MySQL 데이터베이스에서 시간 값을 검색하려고 하면 "지원되지 않는 드라이버 -> 스캔 쌍' 오류. 이 문제는 DATE 및 DATETIME 값을 time.Time 객체로 자동 변환하지 않는 Go MySQL 드라이버의 기본 동작에서 발생합니다.

이 문제를 해결하려면 MySQL 연결 문자열에 parseTime=true를 추가하세요. 이 매개변수는 드라이버에게 필요한 구문 분석을 수행하도록 지시합니다.

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)
로그인 후 복사

사용자 정의 구문 분석

current_timestamp를 사용할 수 없고 current_time을 사용해야 하는 경우 구문 분석을 직접 수행해야 합니다.

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())
로그인 후 복사

이 사용자 정의 구문 분석은 type은 검색된 바이트 슬라이스를 특정 시간 형식(이 경우 "15:04:05")을 사용하여 time.Time 객체로 변환합니다.

위 내용은 Go에서 MySQL 데이터베이스의 시간을 어떻게 구문 분석하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿