Escaneo no admitido, almacenamiento del controlador. Tipo de valor [] uint8 en tipo * hora. Tiempo
Tengo dificultades para consultar a los usuarios, que se define como:
type User struct {
ID int `db:"id" json:"id"`
UserName string `db:"username" json:"username"`
Email string `db:"email" json:"email"`
CreatedAt time.Time `db:"created_at" json:"created_at"`
StatusID uint8 `db:"status_id" json:"status_id"`
Deleted uint8 `db:"deleted" json:"deleted"`
...
}
Y la tabla en MariaDB se define como:
+--------------+------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+-------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(50) | NO | | NA | |
| email | varchar(255) | NO | | NULL | |
| created_at | datetime | NO | | CURRENT_TIMESTAMP | |
| status_id | tinyint(1) | NO | | 0 | |
| deleted | tinyint(1) | NO | | 0 | |
... |
Sin embargo, cuando lo consulto como:
func GetUsers(c *gin.Context) {
var users []model.User
err := shared.Dbmap.Select(&users, "SELECT * FROM user")
if err == nil {
c.JSON(200, users)
} else {
fmt.Println("%v \n", err)
c.JSON(http.StatusInternalServerError, gin.H{"error": "no user(s) in the table or problem in the query"})
}
// curl -i http://127.0.0.1:8080/api/v1/users
}
Me sale este error:
sql: Scan error on column index 3: unsupported Scan, storing driver.Value type []uint8 into type *time.Time
mientras hay algunas filas en la tabla.
También he intentadocreated_at
comotimestamp
pero aun así aparece el mismo error.
Entonces, ¿no tengo idea de qué pasa aquí? ¿Cómo puedo arreglarlo?
PD Aunque mi pregunta resultó tener la misma respuesta queesta pero aquí el contexto es diferente (sqlx
en lugar dego-sql-driver/mysql
) Además, dado que aquí el error es el tema, probablemente sea más buscable para las personas que googlean el mismo error. Entonces, quizás valga la pena mantenerlo como una pregunta separada.