sql >> Databasteknik >  >> RDS >> SQLite

Lägg till månader till ett datum i SQLite

I SQLite kan vi använda DATE() funktion för att lägga till en eller flera månader till ett datum.

När vi har att göra med datetime-värden kan vi använda DATETIME() funktion.

Exempel

Här är ett exempel som använder DATE() funktion:

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

Resultat:

2050-09-21

Om vi ​​ville dra av beloppet kunde vi ersätta + med - .

Utelämna även + del resulterar i att beloppet läggs till, som om vi hade använt + :

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

Resultat:

2050-09-21

Vi kan ange månaderna i plural eller icke-pluralform. Med andra ord, month motsvarar 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

Specificerat i dagar

Vi kan alternativt lägga till en månad eller mer till datumet baserat på ett antal dagar:

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

Resultat:

2050-09-21

Kom dock ihåg att detta kräver att du vet exakt hur många dagar som är lämpliga för de berörda månaderna. Vissa månader har 30 dagar, andra har 31 och februari har antingen 28 eller 29, beroende på om det är ett skottår eller inte.

Med month /months modifierare, SQLite normaliserar datumet, baserat på antalet dagar i den/de relevanta månaden/erna.

Här är en jämförelse mellan månader och dagar när du lägger till ett datum i mars:

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

Och här är samma jämförelse när du lägger till ett datum 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

Här är ett exempel som visar hur du använder DATETIME() funktion för att lägga till en månad till ett datetime-värde:

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

Resultat:

2050-09-21 00:00:00

I det här fallet skickade jag ett datumvärde, men funktionen returnerade ett datetime-värde.

Här är ett annat exempel, den här gången med ett datetime-värde:

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

Resultat:

2050-09-21 18:30:45

  1. Hur programmerar man en MySQL-utlösare för att infoga rad i en annan tabell?

  2. Steg för steg R12.2.6 EBS-installation på Virtual Box

  3. operation inte tillåten när objektet är stängt när mer avancerad fråga körs

  4. Hur får man antalet rader i MySQL-tabellen med PHP?