Проблем:
Искате да покажете брой секунди като времева стойност в часове, минути и секунди в MySQL.
Пример:
Нашата база данни има таблица с име athlete_score
с данни в колоните id
, first_name
, last_name
и score_seconds
.
id | first_name | фамилно_име | score_seconds |
---|---|---|---|
1 | Емили | Уотсън | 1124 |
2 | Том | Гарсия | 987 |
3 | Гари | Мартинес | 1003 |
4 | Джеймс | Андерсън | 1233 |
За всеки спортист, нека вземем името и фамилията им и рекордното им време от seconds_record
колона. В момента се съхранява като брой секунди; нека го покажем във формат HH:MM:SS.
Решение:
Ще използваме SEC_TO_TIME()
функция. Ето заявката, която бихте написали:
SELECT first_name, last_name, SEC_TO_TIME(score_seconds) AS score_time FROM athlete_score;
Ето резултата от заявката:
first_name | фамилно_име | резултатно_време |
---|---|---|
Емили | Уотсън | 00:18:44 |
Том | Гарсия | 00:16:27 |
Гари | Мартинес | 00:16:43 |
Джеймс | Андерсън | 00:20:33 |
Дискусия:
Използвайте SEC_TO_TIME
() функция, ако искате да покажете брой секунди като стойност за време в MySQL. Тази функция приема само един аргумент – или израз, който връща секунди като цяло число, или колона, съхраняваща брой секунди като цяло число. (В нашия пример използваме колоната score_seconds
.)
SEC_TO_TIME()
връща времето във формат HH:MM:SS, където HH е час от 00 до 59, MM са минути от 01 до 59, а SS са секунди от 00 до 59. В нашия пример Емили Уотсън em> резултатът в секунди е 1124 секунди; като стойност на времето е 18 минути и 44 секунди.