sql >> Database teknologi >  >> RDS >> Mysql

DATEDIFF() Eksempler – MySQL

I MySQL kan du bruge DATEDIFF() funktion til at finde forskellen mellem to datoer. Måden det fungerer på er, at du angiver to argumenter (et for hver dato) og DATEDIFF() returnerer antallet af dage mellem de to datoer.

Eksempler nedenfor.

Syntaks

Først her er syntaksen:

DATEDIFF(expr1,expr2)

Hvor expr1 er den første dato og expr2 er den anden date.

Eksempel 1 – Grundlæggende brug

Her er et eksempel til at demonstrere.

SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';

Resultat:

+--------+
| Result |
+--------+
|     29 |
+--------+

I dette eksempel er den første dato senere end den anden dato. I dette tilfælde får vi en positiv returværdi.

Eksempel 2 – Sammenligning med en tidligere dato

Den første date behøver ikke at være en senere dato end den anden. Du kan bruge en tidligere dato for det første argument, og det vil returnere en negativ værdi. Hvis vi bytter de to argumenter rundt, får vi følgende:

SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';

Resultat:

+--------+
| Result |
+--------+
|    -29 |
+--------+

Eksempel 3 – Dato-tidsværdier

Når det bruges sammen med datetime værdier, bruges kun datodelen til at sammenligne datoerne. Eksempel:

SELECT 
  DATEDIFF('2020-10-30 23:59:59', '2020-10-01') AS 'Result 1',
  DATEDIFF('2020-10-01 23:59:59', '2020-10-30') AS 'Result 2';

Resultat:

+----------+----------+
| Result 1 | Result 2 |
+----------+----------+
|       29 |      -29 |
+----------+----------+

Eksempel 4 – Databaseforespørgsel

Her er et eksempel på brug af DATEDIFF() i en databaseforespørgsel. I dette eksempel sammenligner jeg payment_date kolonne med dagens dato (ved at bruge CURDATE() funktion for at returnere dagens dato):

USE sakila;
SELECT
  DATE(payment_date) AS 'Date/Time',
  CURDATE(),
  DATEDIFF(payment_date, CURDATE()) AS 'Date'
FROM payment
WHERE payment_id = 1;

Resultat:

+------------+------------+-------+
| Date/Time  | CURDATE()  | Date  |
+------------+------------+-------+
| 2005-05-25 | 2018-06-25 | -4779 |
+------------+------------+-------+


  1. Hvordan udfører jeg en IF...THEN i en SQL SELECT?

  2. SQLite-undtagelse under forsøg på at slette række

  3. Får fejl ved tilknytning af PostgreSQL LTREE-kolonnen i dvale

  4. Gruppering af data ved hjælp af OVER- og PARTITION BY-funktionerne