sql >> Base de Datos >  >> RDS >> Mysql

Cómo cambiar segundos a un valor de tiempo en MySQL

Problema:

Le gustaría mostrar una cantidad de segundos como un valor de tiempo en horas, minutos y segundos en MySQL.

Ejemplo:

Nuestra base de datos tiene una tabla llamada athlete_score con datos en las columnas id , first_name , last_name y score_seconds .

id nombre apellido puntuación_segundos
1 Emily Watson 1124
2 Tom García 987
3 Gary Martínez 1003
4 James Anderson 1233

Para cada atleta, obtengamos su nombre y apellido y su tiempo récord del seconds_record columna. En este momento, está almacenado como una cantidad de segundos; mostrémoslo en formato HH:MM:SS.

Solución:

Usaremos el SEC_TO_TIME() función. Esta es la consulta que escribirías:

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

Este es el resultado de la consulta:

nombre apellido puntuación_tiempo
Emily Watson 00:18:44
Tomás García 00:16:27
Gary Martínez 00:16:43
James Anderson 00:20:33

Discusión:

Usa el SEC_TO_TIME () si desea mostrar una cantidad de segundos como un valor de tiempo en MySQL. Esta función solo toma un argumento, ya sea una expresión que devuelve segundos como un número entero o una columna que almacena una cantidad de segundos como un número entero. (En nuestro ejemplo, usamos la columna score_seconds .)

SEC_TO_TIME() devuelve la hora en el formato HH:MM:SS, donde HH es una hora de 00 a 59, MM son minutos de 01 a 59 y SS son segundos de 00 a 59. En nuestro ejemplo, Emily Watson la puntuación en segundos es 1124 segundos; como valor de tiempo, es 18 minutos y 44 segundos.