Maison > Article > développement back-end > Comment analyser l'heure à partir d'une base de données : Pourquoi est-ce que j'obtiens l'erreur « Pilote non pris en charge -> Paire d'analyse : []uint8 -> *time.Time » ?
Paire de scan : []uint8 -> Erreur *time.Time" ? " /> Paire de scan : []uint8 -> *time.Time" erreur ? " />
Lorsque vous travaillez avec des bases de données, il est courant de rencontrer des erreurs lors de la tentative de récupération de données. Dans ce cas spécifique, le message d'erreur "non pris en charge pilote -> Paire de numérisation : []uint8 -> *time.Time" indique que le pilote de base de données est incapable de convertir automatiquement les données récupérées (dans ce cas, un tableau d'octets) en une valeur time.Time.
Pour remédier à ce problème, on peut utiliser parseTime dans la chaîne de connexion. Le paramètre parseTime=true demande au pilote d'analyser automatiquement les valeurs DATE et DATETIME de MySQL en objets time.Time.
Exemple :
db, err := sql.Open("mysql", "root:@/?parseTime=true")
En activant parseTime, le pilote convertira de manière transparente les valeurs de temps, permettant une affectation directe aux variables time.Time.
Exemple avec l'instruction SQL :
var myTime time.Time rows, err := db.Query("SELECT current_timestamp()")
Remarque :Cette approche fonctionne avec current_timestamp mais pas current_time. Si vous avez besoin d'une analyse des données current_time, vous devrez implémenter un mécanisme d'analyse personnalisé.
Analyse personnalisée :
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())
En suivant ces étapes, vous pouvez analyser efficacement les valeurs temporelles de la base de données et gérer différents formats de données en toute simplicité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!