Probleem:
U wilt in MySQL een aantal seconden weergeven als tijdswaarde in uren, minuten en seconden.
Voorbeeld:
Onze database heeft een tabel met de naam athlete_score
met gegevens in de kolommen id
, first_name
, last_name
, en score_seconds
.
id | voornaam | achternaam | score_seconden |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tom | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Laten we voor elke atleet hun voor- en achternaam en hun recordtijd halen uit de seconds_record
kolom. Op dit moment wordt het opgeslagen als een aantal seconden; laten we het in HH:MM:SS formaat weergeven.
Oplossing:
We gebruiken de SEC_TO_TIME()
functie. Dit is de vraag die je zou schrijven:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Dit is het resultaat van de zoekopdracht:
voornaam | achternaam | score_time |
---|---|---|
Emily | Watson | 00:18:44 |
Tom | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Discussie:
Gebruik de SEC_TO_TIME
() functie als u een aantal seconden als tijdwaarde in MySQL wilt weergeven. Deze functie heeft slechts één argument nodig:een expressie die seconden als een geheel getal retourneert of een kolom die een aantal seconden als een geheel getal opslaat. (In ons voorbeeld gebruiken we de kolom score_seconds
.)
SEC_TO_TIME()
geeft de tijd terug in de indeling HH:MM:SS, waarbij HH een uur is van 00 tot 59, MM minuten zijn van 01 tot 59 en SS seconden zijn van 00 tot 59. In ons voorbeeld Emily Watson score in seconden is 1124 seconden; als tijdswaarde is dit 18 minuten en 44 seconden.