Problem:
Chcesz wyświetlić liczbę sekund jako wartość czasu w godzinach, minutach i sekundach w MySQL.
Przykład:
Nasza baza danych zawiera tabelę o nazwie athlete_score
z danymi w kolumnach id
, first_name
, last_name
i score_seconds
.
id | imię | nazwisko | score_seconds |
---|---|---|---|
1 | Emilia | Watson | 1124 |
2 | Tomek | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Dla każdego sportowca zdobądźmy jego imię i nazwisko oraz czas ich rekordu z seconds_record
kolumna. W tej chwili jest przechowywany jako liczba sekund; wyświetlmy to w formacie GG:MM:SS.
Rozwiązanie:
Użyjemy SEC_TO_TIME()
funkcjonować. Oto zapytanie, które możesz napisać:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Oto wynik zapytania:
imię | nazwisko | score_time |
---|---|---|
Emilia | Watson | 00:18:44 |
Tomek | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Dyskusja:
Użyj SEC_TO_TIME
() funkcja, jeśli chcesz wyświetlić liczbę sekund jako wartość czasu w MySQL. Ta funkcja przyjmuje tylko jeden argument — wyrażenie zwracające sekundy jako liczbę całkowitą lub kolumnę przechowującą liczbę sekund jako liczbę całkowitą. (W naszym przykładzie używamy kolumny score_seconds
.)
SEC_TO_TIME()
zwraca czas w formacie GG:MM:SS, gdzie GG to godzina od 00 do 59, MM to minuty od 01 do 59, a SS to sekundy od 00 do 59. W naszym przykładzie Emily Watson wynik w sekundach to 1124 sekundy; jako wartość czasu jest to 18 minut i 44 sekundy.