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.