MySQL TIMESTAMPDIFF()
funktion bruges til at finde forskellen mellem to dato- eller datetime-udtryk. Du skal indtaste de to værdier for dato/dato/klokkeslæt samt den enhed, der skal bruges til at bestemme forskellen (f.eks. dag , måned , etc). TIMESTAMPDIFF()
funktion vil så returnere forskellen i den angivne enhed.
Syntaks
For det første er syntaksen sådan her:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
Her, unit
er den enhed, der skal bruges til at udtrykke forskellen (f.eks. dag, måned, år osv.). datetime_expr1
er den første dato/datotidsværdi og datetime_expr2
er den anden.
Denne funktion trækker datetime_expr1
fra fra datetime_expr2
og returnerer resultatet i unit
s. Resultatet returneres som et heltal.
Gyldige enheder
unit
argumentet kan være et hvilket som helst af følgende:
MICROSECOND
-
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
Eksempel 1 – Forskel i dage
Her er et eksempel for at demonstrere den grundlæggende brug af denne funktion. Her sammenligner vi to datoudtryk og returnerer forskellen mellem dem i dage.
SELECT TIMESTAMPDIFF(DAY,'2022-02-01','2022-02-21') AS 'Difference in Days';
Resultat:
+--------------------+ | Difference in Days | +--------------------+ | 20 | +--------------------+
Eksempel 2 – Forskel i timer
I dette eksempel sammenligner vi de samme værdier som i det foregående eksempel, undtagen her returnerer vi forskellen i timer .
SELECT TIMESTAMPDIFF(HOUR,'2022-02-01','2022-02-21') AS 'Difference in Hours';
Resultat:
+---------------------+ | Difference in Hours | +---------------------+ | 480 | +---------------------+
Eksempel 3 – Et 'datetime'-eksempel
Her er et eksempel, der returnerer forskellen i minutter. I dette tilfælde sammenligner vi to datetime-værdier (i modsætning til kun datoværdierne som i de foregående eksempler).
SELECT TIMESTAMPDIFF(MINUTE,'2022-02-01 10:30:27','2022-02-01 10:45:27') AS 'Difference in Minutes';
Resultat:
+-----------------------+ | Difference in Minutes | +-----------------------+ | 15 | +-----------------------+
Eksempel 4 – Brøkdele sekunder
Du kan gå helt ned til mikrosekundet (6 cifre), hvis du har brug for det.
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 | +----------------------------+
Eksempel 5 – Negative resultater
Som forventet, hvis det første dato/tidsargument er større end det andet, vil resultatet være et negativt heltal.
SELECT TIMESTAMPDIFF(DAY,'2022-02-21','2022-02-01') AS 'Difference in Days';
Resultat:
+--------------------+ | Difference in Days | +--------------------+ | -20 | +--------------------+