Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como alterar segundos para um valor de tempo no MySQL

Problema:


Você gostaria de exibir um número de segundos como um valor de tempo em horas, minutos e segundos no MySQL.

Exemplo:


Nosso banco de dados tem uma tabela chamada athlete_score com dados nas colunas id , first_name , last_name e score_seconds .
id first_name last_name score_seconds
1 Emily Watson 1124
2 Tom Garcia 987
3 Gary Martinez 1003
4 James Anderson 1233

Para cada atleta, vamos obter seus nomes e sobrenomes e seu tempo recorde do seconds_record coluna. No momento, é armazenado como um número de segundos; vamos exibi-lo no formato HH:MM:SS.

Solução:


Usaremos o SEC_TO_TIME() função. Aqui está a consulta que você escreveria:
SELECT first_name,
       last_name,
       SEC_TO_TIME(score_seconds)
         AS  score_time
FROM athlete_score;

Segue o resultado da consulta:
first_name last_name score_time
Emily Watson 00:18:44
Tom Garcia 00:16:27
Gary Martinez 00:16:43
James Anderson 00:20:33

Discussão:


Use o SEC_TO_TIME () se você deseja exibir um número de segundos como um valor de tempo no MySQL. Essa função recebe apenas um argumento – uma expressão que retorna segundos como um inteiro ou uma coluna armazenando um número de segundos como um inteiro. (No nosso exemplo, usamos a coluna score_seconds .)

SEC_TO_TIME() retorna a hora no formato HH:MM:SS, onde HH é uma hora de 00 a 59, MM são minutos de 01 a 59 e SS são segundos de 00 a 59. Em nosso exemplo, Emily Watson pontuação em segundos é 1124 segundos; como valor de tempo, é 18 minutos e 44 segundos.