In SQLite kunnen we de DATE()
. gebruiken functie om een of meer maanden aan een datum toe te voegen.
Als we te maken hebben met datetime-waarden, kunnen we de DATETIME()
. gebruiken functie.
Voorbeeld
Hier is een voorbeeld dat de DATE()
. gebruikt functie:
SELECT DATETIME('2050-08-21', '+1 month');
Resultaat:
2050-09-21
Als we het bedrag willen aftrekken, kunnen we +
. vervangen met -
.
Ook het weglaten van de +
een deel resulteert in het toevoegen van het bedrag, alsof we +
. hebben gebruikt :
SELECT DATE('2050-08-21', '1 month');
Resultaat:
2050-09-21
We kunnen de maanden in meervoud of niet-meervoud specificeren. Met andere woorden, month
is gelijk aan months
:
SELECT
DATE('2050-08-21', '+3 month') AS month,
DATE('2050-08-21', '+3 months') AS months;
Resultaat:
month months ---------- ---------- 2050-11-21 2050-11-21
Opgegeven in dagen
We kunnen ook een maand of meer aan de datum toevoegen op basis van een aantal dagen:
SELECT DATE('2050-08-21', '+31 days');
Resultaat:
2050-09-21
Houd er echter rekening mee dat u hiervoor precies moet weten hoeveel dagen geschikt zijn voor de betrokken maanden. Sommige maanden hebben 30 dagen, andere 31 en februari heeft 28 of 29, afhankelijk van of het een schrikkeljaar is of niet.
Met de month
/months
modifier, SQLite normaliseert de datum, gebaseerd op het aantal dagen in de relevante maand(en).
Hier is een vergelijking van maanden versus dagen bij het toevoegen aan een datum in maart:
SELECT
DATE('2050-03-31', '+1 month') AS "1 month",
DATE('2050-03-31', '+30 days') AS "30 days",
DATE('2050-03-31', '+31 days') AS "31 days";
Resultaat:
1 month 30 days 31 days ---------- ---------- ---------- 2050-05-01 2050-04-30 2050-05-01
En hier is dezelfde vergelijking bij het toevoegen aan een datum in september:
SELECT
DATE('2050-09-30', '+1 month') AS "1 month",
DATE('2050-09-30', '+30 days') AS "30 days",
DATE('2050-09-30', '+31 days') AS "31 days";
Resultaat:
1 month 30 days 31 days ---------- ---------- ---------- 2050-10-30 2050-10-30 2050-10-31
De DATETIME()
Functie
Hier is een voorbeeld dat laat zien hoe de DATETIME()
functie om een maand toe te voegen aan een datetime-waarde:
SELECT DATETIME('2050-08-21', '+1 month');
Resultaat:
2050-09-21 00:00:00
In dit geval heb ik een datumwaarde doorgegeven, maar de functie heeft een datetime-waarde geretourneerd.
Hier is nog een voorbeeld, dit keer met een datetime-waarde:
SELECT DATETIME('2050-08-21 18:30:45', '+1 month');
Resultaat:
2050-09-21 18:30:45