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