In MySQL kunt u de DATE_SUB()
. gebruiken functie om een bepaalde hoeveelheid tijd van een datum af te trekken. U kunt het bijvoorbeeld gebruiken om 7 dagen van een bepaalde datum af te trekken. U kunt aangeven of u dagen, weken, maanden, kwartalen, jaren, enz. wilt aftrekken. U kunt ook een tijdswaarde aftrekken, zoals seconden, microseconden, enz.
Deze functie is vergelijkbaar met DATE_ADD()
, behalve dat het aftrekt van een datum in plaats van eraan toe te voegen.
Syntaxis
De syntaxis gaat als volgt:
DATE_SUB(date,INTERVAL expr unit)
Voorbeeld 1 – Basisgebruik
Hier is een gebruiksvoorbeeld.
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
Resultaat:
+------------+ | Result | +------------+ | 2021-05-02 | +------------+
Dit voorbeeld trekt 5 dagen af van de datum die door het eerste argument is opgegeven.
Voorbeeld 2 – Andere datumeenheden
U kunt de eenheden specificeren in dagen, weken, maanden, jaren, enz. Hier zijn enkele voorbeelden.
SELECT '2021-05-07' AS 'Start Date', DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks', DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months', DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters', DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';
Resultaat:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07 | 2019-05-07 | +------------+------------+------------+-------------+------------+
Voorbeeld 3 – Tijdseenheden
U kunt ook tijdseenheden aftrekken van een datum/tijd-waarde. Hier is een voorbeeld.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
Resultaat:
+---------------------+ | Result | +---------------------+ | 2021-05-07 05:00:00 | +---------------------+
En u kunt meerdere eenheden tegelijk specificeren. U kunt bijvoorbeeld uren en minuten opgeven. Vind dit leuk.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Resultaat:
+---------------------+ | Result | +---------------------+ | 2021-05-07 08:30:00 | +---------------------+
Verwachte waarden
De volgende tabel toont de geldige eenheidswaarden en hun verwachte formaat.
unit Waarde | Verwachte expr Formaat |
---|---|
MICROSECONDE | MICROSECONDEN |
TWEEDE | SECONDEN |
MINUUT | MINUTEN |
UUR | UUR |
DAG | DAGEN |
WEEK | WEKEN |
MAAND | MAANDEN |
KWARTAAL | KWARTAAL |
JAAR | JAAR |
SECOND_MICROSECOND | ‘SECONDEN.MICROSECONDEN’ |
MINUTE_MICROSECOND | ‘MINUTEN:SECONDEN.MICROSECONDEN’ |
MINUTE_SECOND | ‘MINUTEN:SECONDEN’ |
HOUR_MICROSECOND | ‘UUR:MINUTEN:SECONDEN.MICROSECONDEN’ |
HOUR_SECOND | ‘UUR:MINUTEN:SECONDEN’ |
HOUR_MINUTE | ‘UUR:MINUTEN’ |
DAY_MICROSECOND | ‘DAGEN UUR:MINUTEN:SECONDEN.MICROSECONDEN’ |
DAY_SECOND | ‘DAGEN UUR:MINUTEN:SECONDEN’ |
DAY_MINUTE | ‘DAGEN UUR:MINUTEN’ |
DAY_HOUR | ‘DAGEN UUR’ |
JAAR_MAAND | ‘JAAR-MAANDEN’ |
U kunt ook de SUBDATE()
. gebruiken functie om hetzelfde te doen (het is een synoniem voor de DATE_SUB()
functie bij gebruik van dezelfde syntaxis).
Bovendien is de syntaxis van SUBDATE()
heeft een tweede vorm, een stenomethode om een bepaald aantal dagen van een datum af te trekken. Zie SUBDATE()-voorbeelden in MySQL voor meer informatie.