sql >> Database teknologi >  >> RDS >> SQLite

Tilføj måneder til en dato i SQLite

I SQLite kan vi bruge DATE() funktion for at tilføje en eller flere måneder til en dato.

Når vi har at gøre med datetime-værdier, kan vi bruge DATETIME() funktion.

Eksempel

Her er et eksempel, der bruger DATE() funktion:

SELECT DATE('2050-08-21', '+1 month');

Resultat:

2050-09-21

Hvis vi ville trække beløbet fra, kunne vi erstatte + med - .

Udelad også + del resulterer i, at beløbet tilføjes, som om vi havde brugt + :

SELECT DATE('2050-08-21', '1 month');

Resultat:

2050-09-21

Vi kan angive månederne i flertalsform eller ikke-flertalsform. Med andre ord, month svarer til months :

SELECT 
    DATE('2050-08-21', '+3 month') AS month,
    DATE('2050-08-21', '+3 months') AS months;

Resultat:

month       months    
----------  ----------
2050-11-21  2050-11-21

Specificeret i dage

Vi kan alternativt tilføje en måned eller mere til datoen baseret på et antal dage:

SELECT DATE('2050-08-21', '+31 days');

Resultat:

2050-09-21

Husk dog på, at dette kræver, at du ved præcis, hvor mange dage der er passende for de involverede måneder. Nogle måneder har 30 dage, nogle har 31, og februar har enten 28 eller 29, afhængigt af om det er et skudår eller ej.

Med month /months modifikator, normaliserer SQLite datoen, baseret på antallet af dage i den/de relevante måned/r.

Her er en sammenligning mellem måneder og dage, når du tilføjer en dato i marts:

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";

Resultat:

1 month     30 days     31 days   
----------  ----------  ----------
2050-05-01  2050-04-30  2050-05-01

Og her er den samme sammenligning, når du tilføjer en dato i 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";

Resultat:

1 month     30 days     31 days   
----------  ----------  ----------
2050-10-30  2050-10-30  2050-10-31

DATETIME() Funktion

Her er et eksempel, der viser, hvordan man bruger DATETIME() funktion til at føje en måned til en datetime-værdi:

SELECT DATETIME('2050-08-21', '+1 month');

Resultat:

2050-09-21 00:00:00

I dette tilfælde sendte jeg en datoværdi, men funktionen returnerede en dato-tidsværdi.

Her er et andet eksempel, denne gang med en datetime-værdi:

SELECT DATETIME('2050-08-21 18:30:45', '+1 month');

Resultat:

2050-09-21 18:30:45

  1. Databaseskift og failover for Drupal-websteder, der bruger MySQL eller PostgreSQL

  2. Hvordan kan jeg gå gennem et MySQL-resultatsæt mere end én gang ved hjælp af mysql_*-funktionerne?

  3. Databaseskema, autoincrement

  4. En guide til MySQL Galera Cluster Streaming Replikering:Anden del