Problém:
V MySQL byste chtěli zobrazit počet sekund jako časovou hodnotu v hodinách, minutách a sekundách.
Příklad:
Naše databáze obsahuje tabulku s názvem athlete_score
s údaji ve sloupcích id
, first_name
, last_name
a score_seconds
.
id | first_name | last_name | score_seconds |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tome | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
U každého sportovce získáme jeho jméno a příjmení a rekordní čas z seconds_record
sloupec. Právě teď je uložen jako počet sekund; zobrazme jej ve formátu HH:MM:SS.
Řešení:
Použijeme SEC_TO_TIME()
funkce. Zde je dotaz, který byste napsali:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Zde je výsledek dotazu:
first_name | last_name | score_time |
---|---|---|
Emily | Watson | 00:18:44 |
Tome | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Diskuse:
Použijte SEC_TO_TIME
() pokud chcete v MySQL zobrazit počet sekund jako časovou hodnotu. Tato funkce přebírá pouze jeden argument – buď výraz, který vrací sekundy jako celé číslo, nebo sloupec ukládající počet sekund jako celé číslo. (V našem příkladu používáme sloupec score_seconds
.)
SEC_TO_TIME()
vrátí čas ve formátu HH:MM:SS, kde HH je hodina od 00 do 59, MM jsou minuty od 01 do 59 a SS jsou sekundy od 00 do 59. V našem příkladu Emily Watson skóre v sekundách je 1124 sekund; jako časová hodnota je to 18 minut a 44 sekund.