Maison > développement back-end > Golang > 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 » ?

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 » ?

Patricia Arquette
Libérer: 2024-11-12 20:03:02
original
847 Les gens l'ont consulté

How to Parse Time from a Database:  Why am I getting the Paire de scan : []uint8 -> Erreur *time.Time" ? " /> Paire de scan : []uint8 -> *time.Time" erreur ? " />

Temps d'analyse d'une base de données : dépannage et solutions

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")
Copier après la connexion

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()")
Copier après la connexion

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 :

  1. Définissez un type personnalisé qui encapsule le type de données d'origine pour gérer l'analyse :
type rawTime []byte

func (t rawTime) Time() (time.Time, error) {
    return time.Parse("15:04:05", string(t))
}
Copier après la connexion
  1. Utilisez le type personnalisé dans le code de numérisation :
var myTime rawTime
rows, err := db.Query("SELECT current_time()")
Copier après la connexion
  1. Récupérez la valeur time.Time analysée à l'aide de la méthode personnalisée :
fmt.Println(myTime.Time())
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal