Mysql
 sql >> Database >  >> RDS >> Mysql

Come modificare i secondi in un valore temporale in MySQL

Problema:

Vorresti visualizzare un numero di secondi come valore temporale in ore, minuti e secondi in MySQL.

Esempio:

Il nostro database ha una tabella denominata athlete_score con i dati nelle colonne id , first_name , last_name e score_seconds .

id nome cognome score_seconds
1 Emilia Watson 1124
2 Tom Garcia 987
3 Gary Martinez 1003
4 Giacomo Anderson 1233

Per ogni atleta, prendiamo nome, cognome e tempo record dal seconds_record colonna. In questo momento, è memorizzato come un numero di secondi; visualizziamolo nel formato HH:MM:SS.

Soluzione:

Useremo il SEC_TO_TIME() funzione. Ecco la domanda che scriveresti:

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

Ecco il risultato della query:

first_name cognome score_time
Emily Watson 00:18:44
Tom Garcia 00:16:27
Gary Martinez 00:16:43
Giacomo Anderson 00:20:33

Discussione:

Usa il SEC_TO_TIME () se si desidera visualizzare un numero di secondi come valore temporale in MySQL. Questa funzione accetta solo un argomento:un'espressione che restituisce secondi come numero intero o una colonna che memorizza un numero di secondi come numero intero. (Nel nostro esempio, utilizziamo la colonna score_seconds .)

SEC_TO_TIME() restituisce l'ora nel formato HH:MM:SS, dove HH è un'ora da 00 a 59, MM sono minuti da 01 a 59 e SS sono secondi da 00 a 59. Nel nostro esempio, Emily Watson il punteggio in secondi è 1124 secondi; come valore di tempo, è 18 minuti e 44 secondi.