sql >> Database >  >> RDS >> SQLite

Maanden toevoegen aan een datum in SQLite

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

  1. Hoe verbinding maken met MySQL-database?

  2. PostgreSQL - HTML-entiteiten vervangen

  3. Gegevens exporteren van SQL Server 2005 naar MySQL

  4. Is er een manier om het rijnummer in Mysql te krijgen, zoals het rijnummer in orakel?