Problem:
Du vill visa ett antal sekunder som ett tidsvärde i timmar, minuter och sekunder i MySQL.
Exempel:
Vår databas har en tabell som heter athlete_score med data i kolumnerna id , first_name , last_name och score_seconds .
| id | förnamn | efternamn | score_seconds |
|---|---|---|---|
| 1 | Emily | Watson | 1124 |
| 2 | Tom | Garcia | 987 |
| 3 | Gary | Martinez | 1003 |
| 4 | James | Anderson | 1233 |
För varje idrottare, låt oss få deras för- och efternamn och deras rekordtid från seconds_record kolumn. Just nu lagras det som ett antal sekunder; låt oss visa det i HH:MM:SS-format.
Lösning:
Vi använder SEC_TO_TIME() fungera. Här är frågan du skulle skriva:
SELECT first_name,
last_name,
SEC_TO_TIME(score_seconds)
AS score_time
FROM athlete_score;
Här är resultatet av frågan:
| förnamn | efternamn | score_time |
|---|---|---|
| Emily | Watson | 00:18:44 |
| Tom | Garcia | 00:16:27 |
| Gary | Martinez | 00:16:43 |
| James | Anderson | 00:20:33 |
Diskussion:
Använd SEC_TO_TIME () funktion om du vill visa ett antal sekunder som ett tidsvärde i MySQL. Den här funktionen tar bara ett argument – antingen ett uttryck som returnerar sekunder som ett heltal eller en kolumn som lagrar ett antal sekunder som ett heltal. (I vårt exempel använder vi kolumnen score_seconds .)
SEC_TO_TIME() returnerar tiden i formatet TT:MM:SS, där TT är en timme från 00 till 59, MM är minuter från 01 till 59 och SS är sekunder från 00 till 59. I vårt exempel, Emily Watson poäng i sekunder är 1124 sekunder; som tidsvärde är det 18 minuter och 44 sekunder.