MySQL TIMESTAMPDIFF()
funktion används för att hitta skillnaden mellan två datum- eller datetime-uttryck. Du måste ange de två datum-/datumtid-värdena, samt den enhet som ska användas för att bestämma skillnaden (t.ex. dag , månad , etc). TIMESTAMPDIFF()
funktion kommer då att returnera skillnaden i den angivna enheten.
Syntax
Först, så här går syntaxen till:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Här, unit
är den enhet som ska användas för att uttrycka skillnaden (t.ex. dag, månad, år, etc). datetime_expr1
är det första datum-/datumtidsvärdet och datetime_expr2
är den andra.
Denna funktion subtraherar datetime_expr1
från datetime_expr2
och returnerar resultatet i unit
s. Resultatet returneras som ett heltal.
Giltiga enheter
unit
argument kan vara något av följande:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Exempel 1 – Skillnad i dagar
Här är ett exempel för att visa den grundläggande användningen av denna funktion. Här jämför vi två datumuttryck och returnerar skillnaden mellan dem i dagar.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Resultat:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Exempel 2 – Skillnad i timmar
I det här exemplet jämför vi samma värden som i föregående exempel, förutom här returnerar vi skillnaden i timmar .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Resultat:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Exempel 3 – Ett "datetime"-exempel
Här är ett exempel som returnerar skillnaden i minuter. I det här fallet jämför vi två datetime-värden (i motsats till bara datumvärdena som i de tidigare exemplen).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Resultat:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Exempel 4 – Bråkdelar av sekunder
Du kan gå ända ner till mikrosekund (6 siffror) om du behöver.
SELECT TIMESTAMPDIFF(MICROSECOND,'2022-02-01 10:30:27.000000','2022-02-01 10:30:27.123456') AS 'Difference in Microseconds';
Resultat:
+----------------------------+ | Difference in Microseconds | +----------------------------+ | 123456 | +----------------------------+
Exempel 5 – Negativa resultat
Som förväntat, om det första datum/tid-argumentet är större än det andra, blir resultatet ett negativt heltal.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Resultat:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+