Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So ändern Sie Sekunden in einen Zeitwert in MySQL

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.