sql >> Databáze >  >> RDS >> SQLite

Přidejte měsíce k datu v SQLite

V SQLite můžeme použít DATE() funkce pro přidání jednoho nebo více měsíců k datu.

Když se zabýváme hodnotami datetime, můžeme použít DATETIME() funkce.

Příklad

Zde je příklad, který používá DATE() funkce:

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

Výsledek:

2050-09-21

Pokud bychom chtěli částku odečíst, mohli bychom nahradit + s - .

Také vynechání + část má za následek přidanou částku, jako bychom použili + :

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

Výsledek:

2050-09-21

Měsíce můžeme specifikovat v množném i nemnožném čísle. Jinými slovy month je ekvivalentní months :

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

Výsledek:

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

Uvedeno ve dnech

Alternativně můžeme k datu přidat měsíc nebo více na základě počtu dní:

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

Výsledek:

2050-09-21

Mějte však na paměti, že to bude vyžadovat, abyste přesně věděli, kolik dní je vhodných pro příslušné měsíce. Některé měsíce mají 30 dní, některé 31 a únor má buď 28, nebo 29, v závislosti na tom, zda je nebo není přestupný rok.

S month /months modifikátor, SQLite normalizuje datum na základě počtu dní v příslušném měsíci/s.

Zde je srovnání měsíců a dnů při přidávání k datu v březnu:

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

Výsledek:

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

A zde je stejné srovnání při přidávání k datu v září:

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

Výsledek:

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

DATETIME() Funkce

Zde je příklad, který ukazuje, jak používat DATETIME() funkce pro přidání měsíce k hodnotě datetime:

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

Výsledek:

2050-09-21 00:00:00

V tomto případě jsem předal hodnotu data, ale funkce vrátila hodnotu datetime.

Zde je další příklad, tentokrát s hodnotou datetime:

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

Výsledek:

2050-09-21 18:30:45

  1. Jak získat aktuální pořadové číslo Auto_Increment pro tabulku MySQL / MariaDB

  2. Důvody k optimismu ohledně budoucnosti Microsoft Access

  3. Jak zobrazit nebo odkrýt panel nástrojů Rychlý přístup ve Wordu, Excelu a PowerPointu

  4. Význam údržby na MSDB