Problem:
Du vil gerne vise et antal sekunder som en tidsværdi i timer, minutter og sekunder i MySQL.
Eksempel:
Vores database har en tabel med navnet athlete_score
med data i kolonnerne id
, first_name
, last_name
, og score_seconds
.
id | fornavn | efternavn | score_seconds |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tom | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Lad os for hver atlet få deres for- og efternavne og deres rekordtid fra seconds_record
kolonne. Lige nu er det gemt som et antal sekunder; lad os vise det i TT:MM:SS-format.
Løsning:
Vi bruger SEC_TO_TIME()
fungere. Her er den forespørgsel, du ville skrive:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Her er resultatet af forespørgslen:
fornavn | efternavn | score_time |
---|---|---|
Emily | Watson | 00:18:44 |
Tom | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Diskussion:
Brug SEC_TO_TIME
() funktion, hvis du vil vise et antal sekunder som en tidsværdi i MySQL. Denne funktion tager kun ét argument – enten et udtryk, der returnerer sekunder som et heltal, eller en kolonne, der gemmer et antal sekunder som et heltal. (I vores eksempel bruger vi kolonnen score_seconds
.)
SEC_TO_TIME()
returnerer tiden i TT:MM:SS-formatet, hvor TT er en time fra 00 til 59, MM er minutter fra 01 til 59, og SS er sekunder fra 00 til 59. I vores eksempel, Emily Watson score i sekunder er 1124 sekunder; som tidsværdi er den 18 minutter og 44 sekunder.