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.