掃描對:[]uint8 -> *time.Time」錯誤? " /> 掃描對:[]uint8 -> *time.Time" 錯誤? " />
使用資料庫時,在嘗試檢索資料時經常會遇到錯誤。在這種特定情況下,錯誤訊息“不支援”驅動程式->掃描對:[]uint8 -> *time.Time”表示資料庫驅動程式無法自動將檢索到的資料(在本例中為位元組數組)轉換為time.Time 值。
要修正此問題,可以使用parseTime連接字串中的參數設定parseTime=true 指示驅動程式自動將MySQL 的DATE 和DATETIME 值解析為time.Time
範例:
db, err := sql.Open("mysql", "root:@/?parseTime=true")
透過啟用parseTime,驅動程式將無縫轉換時間值,允許直接指派給 time.Time 變數。
SQL 範例語句:
var myTime time.Time rows, err := db.Query("SELECT current_timestamp()")
注意:此方法適用於 current_timestamp,但不適用於 current_time。如果您需要 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()")
fmt.Println(myTime.Time())
按照以下步驟,可以有效解析來自資料庫的時間值並輕鬆處理不同的資料格式。
以上是如何從資料庫解析時間:為什麼我會收到'不支援的驅動程式 -> 掃描對:[]uint8 -> *time.Time”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!