MySQL TIMESTAMPDIFF()
Funkcja służy do znajdowania różnicy między dwoma wyrażeniami daty lub daty i godziny. Musisz podać dwie wartości daty/daty/godziny, a także jednostkę używaną do określenia różnicy (np. dzień , miesiąc itp.). TIMESTAMPDIFF()
funkcja zwróci wtedy różnicę w określonej jednostce.
Składnia
Po pierwsze, oto jak idzie składnia:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Tutaj, unit
to jednostka używana do wyrażania różnicy (np. dzień, miesiąc, rok itp.). datetime_expr1
jest pierwszą wartością daty/daty/godziny, a datetime_expr2
jest drugi.
Ta funkcja odejmuje datetime_expr1
z datetime_expr2
i zwraca wynik w unit
s. Wynik jest zwracany jako liczba całkowita.
Właściwe jednostki
unit
argument może być jednym z następujących:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Przykład 1 – Różnica w dniach
Oto przykład demonstrujący podstawowe użycie tej funkcji. Tutaj porównujemy dwa wyrażenia daty i zwracamy różnicę między nimi w dniach.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Wynik:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Przykład 2 – Różnica w godzinach
W tym przykładzie porównujemy te same wartości, co w poprzednim przykładzie, z wyjątkiem tego, że zwracamy różnicę w godzinach .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Wynik:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Przykład 3 – Przykład „data-godzina”
Oto przykład, który zwraca różnicę w minutach. W tym przypadku porównujemy dwie wartości daty i godziny (w przeciwieństwie do samych wartości daty, jak w poprzednich przykładach).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Wynik:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Przykład 4 – ułamki sekund
W razie potrzeby możesz zejść z dokładnością do mikrosekundy (6 cyfr).
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Wynik:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Przykład 5 – Wyniki negatywne
Jak można się było spodziewać, jeśli pierwszy argument daty/czasu jest większy niż drugi, wynik będzie ujemną liczbą całkowitą.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Wynik:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+