In MySQL kunt u de SUBDATE()
. gebruiken functie om een bepaalde hoeveelheid tijd van een datum af te trekken. U kunt het bijvoorbeeld gebruiken om 10 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.
Bij gebruik van de eerste hieronder vermelde syntaxis, wordt de SUBDATE()
functie is een synoniem voor de DATE_SUB()
functie (vergelijkbaar met hoe ADDDATE()
is een synoniem voor DATE_ADD()
bij gebruik van dezelfde syntaxis).
Syntaxis
U kunt deze functie op de volgende twee manieren gebruiken:
SUBDATE(date,INTERVAL expr unit)
Of
SUBDATE(expr,days)
Voorbeeld 1 – De eerste syntaxis
Hier is een voorbeeld van het gebruik van de eerste vorm van de syntaxis.
SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;
Resultaat:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Dit voorbeeld trekt 2 dagen af van de datum die door het eerste argument is opgegeven.
Voorbeeld 2 – De tweede syntaxis
Dit voorbeeld kan als volgt worden herschreven:
SELECT SUBDATE('2018-05-10', 2) AS Result;
Resultaat:
+------------+ | Result | +------------+ | 2018-05-08 | +------------+
Dit gebruikt de tweede vorm van de syntaxis. Het tweede argument is een geheel getal dat aangeeft hoeveel dagen moeten worden afgetrokken van de datum die door het eerste argument wordt opgegeven.
Zoals vermeld, SUBDATE()
is een synoniem voor DATE_SUB()
, maar alleen wanneer de eerste syntaxis wordt gebruikt. De tweede syntaxis is alleen beschikbaar in SUBDATE()
.
Voorbeeld 3 – Andere datumeenheden
Een voordeel van de eerste vorm van de syntaxis is dat u kunt specificeren of u dagen, weken, maanden, jaren, enz. wilt aftrekken. Hier zijn enkele voorbeelden.
SELECT '2018-05-10' AS 'Start Date', SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks', SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months', SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters', SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';
Resultaat:
+------------+------------+------------+-------------+------------+ | Start Date | -2 Weeks | -2 Months | -2 Quarters | -2 Years | +------------+------------+------------+-------------+------------+ | 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10 | 2016-05-10 | +------------+------------+------------+-------------+------------+
Voorbeeld 4 – Tijdseenheden
Je kunt ook SUBDATE()
. gebruiken om tijdseenheden af te trekken van een datum/tijd-waarde. Hier is een voorbeeld.
SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;
Resultaat:
+---------------------+ | Result | +---------------------+ | 2018-05-09 23:00: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’ |