Проблем:
Искате да покажете брой секунди като времева стойност в часове, минути и секунди в 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 секунди.