Problem:
Sie möchten in MySQL eine Anzahl von Sekunden als Zeitwert in Stunden, Minuten und Sekunden anzeigen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens athlete_score
mit Daten in den Spalten id
, first_name
, last_name
und score_seconds
.
id | Vorname | Nachname | score_seconds |
---|---|---|---|
1 | Emily | Watson | 1124 |
2 | Tom | Garcia | 987 |
3 | Gary | Martinez | 1003 |
4 | James | Anderson | 1233 |
Lassen Sie uns für jeden Athleten seinen Vor- und Nachnamen und seine Rekordzeit aus dem seconds_record
abrufen Säule. Im Moment wird es als Anzahl von Sekunden gespeichert; Lassen Sie es uns im Format HH:MM:SS anzeigen.
Lösung:
Wir verwenden SEC_TO_TIME()
Funktion. Hier ist die Abfrage, die Sie schreiben würden:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Hier ist das Ergebnis der Abfrage:
Vorname | Nachname | score_time |
---|---|---|
Emily | Watson | 00:18:44 |
Tom | Garcia | 00:16:27 |
Gary | Martinez | 00:16:43 |
James | Anderson | 00:20:33 |
Diskussion:
Verwenden Sie den SEC_TO_TIME
() Funktion, wenn Sie in MySQL eine Anzahl von Sekunden als Zeitwert anzeigen möchten. Diese Funktion akzeptiert nur ein Argument – entweder einen Ausdruck, der Sekunden als Ganzzahl zurückgibt, oder eine Spalte, die eine Anzahl von Sekunden als Ganzzahl speichert. (In unserem Beispiel verwenden wir die Spalte score_seconds
.)
SEC_TO_TIME()
gibt die Uhrzeit im Format HH:MM:SS zurück, wobei HH eine Stunde von 00 bis 59, MM Minuten von 01 bis 59 und SS Sekunden von 00 bis 59 sind. In unserem Beispiel Emily Watson Punktzahl in Sekunden ist 1124 Sekunden; als Zeitwert sind es 18 Minuten und 44 Sekunden.