sql >> Databasteknik >  >> RDS >> Mysql

TIMESTAMPDIFF() Exempel – MySQL

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 |
+--------------------+


  1. Hitta det maximala antalet år i följd för varje ID i en tabell (Oracle SQL)

  2. 4 sätt att lista alla tabeller i en MySQL-databas

  3. 10 SP_EXECUTESQL Gotchas att undvika för bättre dynamisk SQL

  4. Hur man kör flera MySQL-instanser på samma maskin