Ce face SEC_TO_TIME() și TIME_TO_SEC()
SEC_TO_TIME() face din secunde o durată ușor de citit: 3725 devine 01:02:05. TIME_TO_SEC() face conversia inversă. Împreună sunt utile la adunarea duratelor.
Parametri
| Parametru | Descriere |
|---|---|
secunde |
Numărul de secunde. |
ora |
Durata în format HH:MM:SS. |
Ce returnează
O valoare TIME, respectiv un număr întreg.
Exemple
Exemplul 1: Conversie în ambele sensuri
SELECT SEC_TO_TIME(3725) AS durata, TIME_TO_SEC('01:02:05') AS secunde;
Rezultat
+----------+---------+
| durata | secunde |
+----------+---------+
| 01:02:05 | 3725 |
+----------+---------+
Exemplul 2: Totalul timpului petrecut pe site
CREATE TABLE vizite (utilizator VARCHAR(20), durata TIME);
INSERT INTO vizite VALUES ('ana', '00:12:30'), ('ana', '00:48:10'), ('dan', '01:05:00');
SELECT utilizator, SEC_TO_TIME(SUM(TIME_TO_SEC(durata))) AS total
FROM vizite
GROUP BY utilizator
ORDER BY utilizator;
Rezultat
+------------+----------+
| utilizator | total |
+------------+----------+
| ana | 01:00:40 |
| dan | 01:05:00 |
+------------+----------+
Greșeli frecvente
- Aduni direct coloane
TIMEcuSUM(). Rezultatul este un număr fără sens (ex. 13040). Transformă întâi în secunde, adună, apoi transformă înapoi.
Comenzi înrudite
TIME_FORMAT(): Formatează o oră sau o durată, cu codurile pentru ore, minute și secunde.TIMEDIFF(): Diferența dintre două ore sau date-ore, ca durată HH:MM:SS.SUM: Adună valorile dintr-o coloană numerică.