MySQL TIMESTAMPDIFF()
Funkce se používá k nalezení rozdílu mezi dvěma výrazy datum nebo datum a čas. Musíte zadat dvě hodnoty datum/datum a čas a také jednotku, kterou chcete použít k určení rozdílu (např. den , měsíc , atd). TIMESTAMPDIFF()
funkce pak vrátí rozdíl v zadané jednotce.
Syntaxe
Nejprve se podívejme, jak probíhá syntaxe:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Zde unit
je jednotka pro vyjádření rozdílu (např. den, měsíc, rok atd.). datetime_expr1
je první hodnota data/datetime a datetime_expr2
je druhý.
Tato funkce odečte datetime_expr1
z datetime_expr2
a vrátí výsledek v unit
s. Výsledek je vrácen jako celé číslo.
Platné jednotky
unit
argument může být kterýkoli z následujících:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Příklad 1 – Rozdíl ve dnech
Zde je příklad demonstrující základní použití této funkce. Zde porovnáme dva výrazy data a vrátíme rozdíl mezi nimi ve dnech.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Výsledek:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Příklad 2 – Rozdíl v hodinách
V tomto příkladu porovnáváme stejné hodnoty jako v předchozím příkladu, kromě toho, že zde vracíme rozdíl v hodinách .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Výsledek:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Příklad 3 – Příklad „datum a čas“
Zde je příklad, který vrátí rozdíl v minutách. V tomto případě porovnáme dvě hodnoty data a času (oproti pouze hodnotám data jako v předchozích příkladech).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Výsledek:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Příklad 4 – zlomky sekund
Pokud potřebujete, můžete přejít až na mikrosekundu (6 číslic).
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Výsledek:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Příklad 5 – Negativní výsledky
Jak by se dalo očekávat, pokud je první argument data/času větší než druhý, výsledkem bude záporné celé číslo.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Výsledek:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+