sql >> Database >  >> RDS >> Mysql

TIMESTAMPDIFF() Voorbeelden – MySQL

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


  1. Intermitterende ODBC-verbindingsfouten

  2. uren berekenen op basis van kantooruren in Oracle SQL

  3. Hoe voer ik grote niet-blokkerende updates uit in PostgreSQL?

  4. Hoe ORA-28000 op te lossen, het account is vergrendeld