Ce face TIMEDIFF()
TIMEDIFF() returnează diferența ca valoare TIME. Ambele argumente trebuie să fie de același tip (ambele ore sau ambele date-ore).
Valoarea maximă a tipului TIME este 838:59:59, adică aproximativ 35 de zile.
Parametri
| Parametru | Descriere |
|---|---|
expresie1 |
Momentul de final. |
expresie2 |
Momentul de început. |
Ce returnează
Durata, de tip TIME.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE comenzi (
id INT PRIMARY KEY,
client VARCHAR(30),
plasata DATETIME,
livrata DATETIME
);
INSERT INTO comenzi VALUES
(101, 'Ana', '2026-09-28 09:15:00', '2026-10-01 14:20:00'),
(102, 'Bogdan', '2026-10-05 18:40:00', '2026-10-06 10:05:00'),
(103, 'Cristina', '2026-10-17 22:10:00', NULL),
(104, 'Dan', '2026-12-30 11:00:00', '2027-01-04 16:30:00');
Exemplul 1: Ore lucrate
SELECT TIMEDIFF('18:00:00', '09:30:00') AS ore_lucrate;
Rezultat
+-------------+
| ore_lucrate |
+-------------+
| 08:30:00 |
+-------------+
Exemplul 2: Timpul de livrare
SELECT id, TIMEDIFF(livrata, plasata) AS durata
FROM comenzi
WHERE livrata IS NOT NULL
ORDER BY id;
Rezultat
+-----+-----------+
| id | durata |
+-----+-----------+
| 101 | 77:05:00 |
| 102 | 15:25:00 |
| 104 | 125:30:00 |
+-----+-----------+
Greșeli frecvente
- Amesteci o oră cu o dată-oră:
TIMEDIFF('2026-10-19 10:00:00', '09:00:00')returneazăNULL. Folosește același tip în ambele argumente.
Comenzi înrudite
TIMESTAMPDIFF(): Diferența dintre două momente în unitatea aleasă: secunde, minute, ore, zile, luni, ani.DATEDIFF(): Numărul de zile dintre două date (data1 – data2), ignorând orele.