SEC_TO_TIME
SEC_TO_TIME(seconds)
Zamienia liczbę sekund na wartość TIME w postaci godziny:minuty:sekundy. Godzin może być więcej niż 23.
Parametry
- seconds – liczba sekund; może być ujemna.
Przykłady
SELECT SEC_TO_TIME(3725) AS hour_and_2_minutes, SEC_TO_TIME(90000) AS over_a_day, SEC_TO_TIME(-60) AS negative;
+--------------------+------------+-----------+ | hour_and_2_minutes | over_a_day | negative | +--------------------+------------+-----------+ | 01:02:05 | 25:00:00 | -00:01:00 | +--------------------+------------+-----------+
Suma czasów trwania – czasy są zamieniane na sekundy, sumowane i zamieniane z powrotem. Przy czasach zapisanych jako ciągi znaków MariaDB dodaje zerowe mikrosekundy:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(duration))) AS total FROM (SELECT '01:45:00' AS duration UNION ALL SELECT '02:30:00' UNION ALL SELECT '00:50:00') x;
Wynik w MariaDB:
+-----------------+ | total | +-----------------+ | 05:05:00.000000 | +-----------------+
Wynik w MySQL 8:
+----------+ | total | +----------+ | 05:05:00 | +----------+
Na co uważać
- Typ TIME sięga do 838:59:59 – większa liczba sekund zostaje z ostrzeżeniem obcięta do tej granicy.
- SUM() bezpośrednio na kolumnie TIME nie sumuje czasów prawidłowo (są traktowane jak liczby); zawsze zamieniaj je za pomocą TIME_TO_SEC().
Zobacz też:
TIME_TO_SEC()
TIME_FORMAT()
TIMEDIFF()