Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment changer les secondes en une valeur temporelle dans MySQL

Problème :

Vous souhaitez afficher un nombre de secondes sous forme de valeur de temps en heures, minutes et secondes dans MySQL.

Exemple :

Notre base de données a une table nommée athlete_score avec des données dans les colonnes id , first_name , last_name , et score_seconds .

identifiant prénom nom_de_famille score_secondes
1 Émilie Watson 1124
2 Tom Garcia 987
3 Gary Martinez 1003
4 James Anderson 1233

Pour chaque athlète, récupérons leurs noms et prénoms et leur temps record à partir du seconds_record colonne. À l'heure actuelle, il est stocké en nombre de secondes ; affichons-le au format HH:MM:SS.

Solution :

Nous utiliserons le SEC_TO_TIME() une fonction. Voici la requête que vous écririez :

SELECT first_name,
       last_name,
       SEC_TO_TIME(score_seconds)
         AS  score_time
FROM athlete_score;

Voici le résultat de la requête :

prénom nom_de_famille score_time
Émilie Watson 00:18:44
Tom Garcia 00:16:27
Gary Martinez 00:16:43
James Anderson 00:20:33

Discussion :

Utilisez le SEC_TO_TIME () si vous souhaitez afficher un nombre de secondes en tant que valeur temporelle dans MySQL. Cette fonction ne prend qu'un seul argument - soit une expression qui renvoie des secondes sous forme d'entier, soit une colonne stockant un nombre de secondes sous forme d'entier. (Dans notre exemple, nous utilisons la colonne score_seconds .)

SEC_TO_TIME() renvoie l'heure au format HH:MM:SS, où HH est une heure entre 00 et 59, MM sont des minutes entre 01 et 59 et SS sont des secondes entre 00 et 59. Dans notre exemple, Emily Watson le score en secondes est de 1124 secondes ; comme valeur de temps, c'est 18 minutes et 44 secondes.