De MySQL TIMESTAMPDIFF()
functie wordt gebruikt om het verschil te vinden tussen twee datum- of datetime-expressies. U moet de twee datum/datum/tijd-waarden invoeren, evenals de eenheid die moet worden gebruikt om het verschil te bepalen (bijv. dag , maand , enzovoort). De TIMESTAMPDIFF()
functie retourneert dan het verschil in de opgegeven eenheid.
Syntaxis
Ten eerste, hier is hoe de syntaxis werkt:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Hier, unit
is de eenheid die wordt gebruikt om het verschil uit te drukken (bijv. dag, maand, jaar, enz.). datetime_expr1
is de eerste date/datetime-waarde, en datetime_expr2
is de tweede.
Deze functie trekt datetime_expr1
af van datetime_expr2
en geeft het resultaat terug in unit
s. Het resultaat wordt geretourneerd als een geheel getal.
Geldige eenheden
De unit
argument kan een van de volgende zijn:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Voorbeeld 1 – Verschil in dagen
Hier is een voorbeeld om het basisgebruik van deze functie te demonstreren. Hier vergelijken we twee datumuitdrukkingen en geven het verschil ertussen terug in dagen.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Resultaat:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Voorbeeld 2 – Verschil in uren
In dit voorbeeld vergelijken we dezelfde waarden als in het vorige voorbeeld, behalve dat we hier het verschil in uren retourneren .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Resultaat:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Voorbeeld 3 – Een ‘datetime’ voorbeeld
Hier is een voorbeeld dat het verschil in minuten retourneert. In dit geval vergelijken we twee datetime-waarden (in tegenstelling tot alleen de datumwaarden zoals in de vorige voorbeelden).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Resultaat:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Voorbeeld 4 – Fractionele seconden
Je kunt tot op de microseconde (6 cijfers) gaan als dat nodig is.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Resultaat:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Voorbeeld 5 – Negatieve resultaten
Zoals te verwachten is, is het resultaat een negatief geheel getal als het eerste datum/tijd-argument groter is dan het tweede.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Resultaat:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+