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.