In MySQL, kunt u de DATE_SUB()
functie gebruiken om een gespecificeerde hoeveelheid tijd van een datum af te trekken. U kunt de functie bijvoorbeeld gebruiken om 7 dagen van een bepaalde datum af te trekken. U kunt opgeven 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 hij van een datum aftrekt in plaats van er bij op te tellen.
Syntax
De syntax gaat als volgt:
DATE_SUB(date,INTERVAL expr unit)
Voorbeeld 1 – Basisgebruik
Hier volgt een voorbeeld van het gebruik.
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 geleverd door het eerste argument.
Voorbeeld 2 – Andere Datum Eenheden
U kunt de eenheden opgeven in dagen, weken, maanden, jaren, etc. Hier volgen 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 opgeven. U kunt bijvoorbeeld uren en minuten opgeven. Zoals dit.
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 |
Verwacht expr Formaat |
---|---|
MICROSECONDE | MICROSECONDEN |
SECONDE | SECONDEN |
MINUUT | MINUTEN |
UUR | UREN |
DAG | DAGEN |
WEEK | WEKEN |
MAAND | MAANDEN |
KWARTAAL | KWARTALEN |
JAAR | JAREN |
SECONDE_MICROSECONDE | ‘SECONDEN.MICROSECONDEN’ |
MINUUT_MICROSECONDE | ‘MINUTEN:SECONDEN.MICROSECONDEN’ |
MINUTE_SECOND | ‘MINUTES:SECONDS’ |
HOUR_MICROSECOND | ‘HOURS:MINUTES:SECONDS.MICROSECONDEN’ |
UUR_SECONDE | ‘UREN:MINUTEN:SECONDEN’ |
UUR_MINUUT | ‘UREN:MINUTEN’ |
DAG_MICROSECONDE | ‘DAGEN UREN:MINUTEN:SECONDEN.MICROSECONDEN’ |
DAG_SECONDE | ‘DAGEN UREN:MINUTEN:SECONDEN’ |
DAG_MINUUT | ‘DAGEN UREN:MINUTEN’ |
DAG_UUR | ‘DAGEN UREN’ |
JAAR_MAAND | ‘JAREN-MAANDEN’ |
U kunt ook de functie SUBDATE()
gebruiken om hetzelfde te doen (het is een synoniem voor de functie DATE_SUB()
wanneer u dezelfde syntaxis gebruikt).
Daarnaast heeft de syntaxis van SUBDATE()
een tweede vorm, die een steno methode is om een bepaald aantal dagen van een datum af te trekken. Zie voor meer informatie SUBDATE() Examples in MySQL.