SEC_TO_TIME() și TIME_TO_SEC() în MySQL

Transformă un număr de secunde în durată HH:MM:SS și invers.

Sintaxă
SEC_TO_TIME(secunde)
TIME_TO_SEC(ora)

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 TIME cu SUM(). 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ă.