In MySQL kunt u de DATEDIFF()
. gebruiken functie om het verschil tussen twee datums te vinden. De manier waarop het werkt, is dat je twee argumenten geeft (één voor elke datum), en DATEDIFF()
geeft het aantal dagen tussen de twee datums terug.
Voorbeelden hieronder.
Syntaxis
Ten eerste, hier is de syntaxis:
DATEDIFF(expr1,expr2)
Waar expr1
is de eerste date, en expr2
is de tweede date.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld om te demonstreren.
SELECT DATEDIFF('2020-10-30', '2020-10-01') AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | 29 | +--------+
In dit voorbeeld is de eerste datum later dan de tweede datum. In dit geval krijgen we een positieve retourwaarde.
Voorbeeld 2 – Vergelijking met een eerdere datum
De eerste date hoeft niet later te zijn dan de tweede date. U kunt een eerdere datum gebruiken voor het eerste argument en het zal een negatieve waarde retourneren. Als we die twee argumenten omwisselen, krijgen we het volgende:
SELECT DATEDIFF('2020-10-01', '2020-10-30') AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | -29 | +--------+
Voorbeeld 3 – Datum/tijd-waarden
Bij gebruik met datetime waarden, wordt alleen het datumgedeelte gebruikt om de datums te vergelijken. Voorbeeld:
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';
Resultaat:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 29 | -29 | +----------+----------+
Voorbeeld 4 – Databasequery
Hier is een voorbeeld van het gebruik van DATEDIFF()
in een databasequery. In dit voorbeeld vergelijk ik de payment_date
kolom met de datum van vandaag (met behulp van de CURDATE()
functie om de datum van vandaag terug te geven):
USE sakila; SELECT DATE(payment_date) AS 'Date/Time', CURDATE(), DATEDIFF(payment_date, CURDATE()) AS 'Date' FROM payment WHERE payment_id = 1;
Resultaat:
+------------+------------+-------+ | Date/Time | CURDATE() | Date | +------------+------------+-------+ | 2005-05-25 | 2018-06-25 | -4779 | +------------+------------+-------+