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

Získejte první, druhé, třetí nebo čtvrté pondělí v měsíci v SQLite

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.


  1. Jak provést hromadné vložení v MySQL?

  2. Závažná chyba:Volání nedefinované funkce sqlsrv_connect() v C:\xampp\htdocs

  3. Jak přidáte tlačítko pro úpravy do každého řádku v sestavě v Oracle APEX?

  4. zabezpečení vláken postgresql pro dočasné tabulky