Můžeme použít DATE()
SQLite funkce provádět výpočty k danému datu. Jedna z věcí, kterou můžeme udělat, je vrátit první, druhou, třetí nebo čtvrtou instanci daného dne v daném měsíci.
Příklad
Zde je příklad k demonstraci:
SELECT
DATE('2025-10-20', 'start of month', 'weekday 1') AS "First",
DATE('2025-10-20', 'start of month', '+7 days', 'weekday 1') AS "Second",
DATE('2025-10-20', 'start of month', '+14 days', 'weekday 1') AS "Third",
DATE('2025-10-20', 'start of month', '+21 days', 'weekday 1') AS "Fourth",
DATE('2025-10-20', 'start of month', '+28 days', 'weekday 1') AS "Fifth";
Výsledek:
First Second Third Fourth Fifth ---------- ---------- ---------- ---------- ---------- 2025-10-06 2025-10-13 2025-10-20 2025-10-27 2025-11-03
V tomto příkladu je počáteční datum stejné pro všechny instance a také většina argumentů. Jediné, co se mění, je, kolik přidáme do začátku měsíce. Pokud nic nepřidáme, můžeme vrátit první pondělí, druhé pondělí přidat 7 dní a tak dále.
Zde používáme start of month
vrátit datum zpět na první den v měsíci. Poté použijeme více modifikátorů, abychom toto datum odpovídajícím způsobem upravili.
weekday 1
modifikátor posouvá datum dopředu na další pondělí (neděle je 0, pondělí je 1, úterý je 2 atd.).
K získání druhého pondělí můžeme použít +7 days
posunout datum o týden dopředu. Pro následující pondělí k tomuto číslu přidáme 7 dní (+14 days
, +21 days
, +28 days
atd).
Můžeme také vidět, že přidání 28 dnů vrátí první pondělí následujícího měsíce.