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.