mysql.NullTime работает, но sql.NullTime не - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть таблица с именем package_redeem и поле с именем expire_at с типом TIMESTAMP

Мой метод Go для получения значения выглядит следующим образом

// RetrieveRedeemRecord will Retrieve a RedeemCode Record by Code; R of CRUD
func RetrieveRedeemRecord(code string) (anyError error) {

    var thisWorks mysql.NullTime
    var thisOneNotWork sql.NullTime

    stmtStr := `SELECT expire_at FROM package_redeem WHERE code=?`
    anyError = dbhelper.GetDB().QueryRow(stmtStr, code).Scan(&thisOneNotWork)
    switch anyError {
    case nil:
    case sql.ErrNoRows:
        log.Println("no row found with ", code)
    default:
        log.Panic("errRow(s) ", anyError.Error())
    }

    return anyError
}

Странно, что использование типа sql.NullTimeбудет паниковать!

panic: errRow(s) sql: Scan error on column index 5, name "updated_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time [recovered]
            panic: errRow(s) sql: Scan error on column index 5, name "updated_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time

Но использование типа mysql.NullTime будет работать, я думал, начиная с Go1.3, что mysql.NullTime это просто sql.NullTime.Я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...