SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Zwróć pierwszy poniedziałek każdego miesiąca w SQLite

Możemy użyć funkcji DATE() SQLite'a funkcja zwracająca pierwszy poniedziałek każdego miesiąca za dany rok, na podstawie podanej przez nas daty.

Ale to nie ogranicza się do poniedziałku. Możemy również uzyskać pierwszy wtorek, środę, czwartek, piątek itd. każdego miesiąca.

Przykład

Możemy alternatywnie użyć kodu takiego jak poniższy, aby zwrócić pierwszy poniedziałek każdego miesiąca przez cały rok:

SELECT 
    DATE('2025-10-20', 'start of year', 'weekday 1') AS "Jan",
    DATE('2025-10-20', 'start of year', '+1 month', 'weekday 1') AS "Feb",
    DATE('2025-10-20', 'start of year', '+2 months', 'weekday 1') AS "Mar",
    DATE('2025-10-20', 'start of year', '+3 months', 'weekday 1') AS "Apr",
    DATE('2025-10-20', 'start of year', '+4 months', 'weekday 1') AS "May",
    DATE('2025-10-20', 'start of year', '+5 months', 'weekday 1') AS "Jun",
    DATE('2025-10-20', 'start of year', '+6 months', 'weekday 1') AS "Jul",
    DATE('2025-10-20', 'start of year', '+7 months', 'weekday 1') AS "Aug",
    DATE('2025-10-20', 'start of year', '+8 months', 'weekday 1') AS "Sep",
    DATE('2025-10-20', 'start of year', '+9 months', 'weekday 1') AS "Oct",
    DATE('2025-10-20', 'start of year', '+10 months', 'weekday 1') AS "Nov",
    DATE('2025-10-20', 'start of year', '+11 months', 'weekday 1') AS "Dec";

Wynik:

Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
2025-01-06  2025-02-03  2025-03-03  2025-04-07  2025-05-05  2025-06-02  2025-07-07  2025-08-04  2025-09-01  2025-10-06  2025-11-03  2025-12-01

Tutaj nazywamy DATE() funkcja dwanaście razy. Za każdym razem używamy tej samej daty, a większość argumentów jest taka sama. Jedyne, co się zmienia, to ile dodamy do początku roku.

Używamy start of year aby cofnąć datę do pierwszego dnia roku. Następnie używamy dodatkowych modyfikatorów, aby odpowiednio zmodyfikować tę datę.

Gdy nie dodamy do terminu żadnych miesięcy, zwracamy w pierwszy poniedziałek stycznia. Dodanie +1 month zwraca pierwszy poniedziałek lutego itd.

weekday 1 modyfikator przesuwa datę do przodu na następny poniedziałek. Niedziela to 0, poniedziałek to 1, wtorek to 2 i tak dalej, więc jeśli chcielibyśmy na przykład we wtorek, użyjemy weekday 2 zamiast tego.

Korzystanie z bieżącej daty

Poniższy przykład używa bieżącej daty:

SELECT 
    DATE('now') AS "Now",
    DATE('now', 'start of year', 'weekday 1') AS "Jan",
    DATE('now', 'start of year', '+1 month', 'weekday 1') AS "Feb",
    DATE('now', 'start of year', '+2 months', 'weekday 1') AS "Mar",
    DATE('now', 'start of year', '+3 months', 'weekday 1') AS "Apr",
    DATE('now', 'start of year', '+4 months', 'weekday 1') AS "May",
    DATE('now', 'start of year', '+5 months', 'weekday 1') AS "Jun",
    DATE('now', 'start of year', '+6 months', 'weekday 1') AS "Jul",
    DATE('now', 'start of year', '+7 months', 'weekday 1') AS "Aug",
    DATE('now', 'start of year', '+8 months', 'weekday 1') AS "Sep",
    DATE('now', 'start of year', '+9 months', 'weekday 1') AS "Oct",
    DATE('now', 'start of year', '+10 months', 'weekday 1') AS "Nov",
    DATE('now', 'start of year', '+11 months', 'weekday 1') AS "Dec";

Wynik:

Now         Jan         Feb         Mar         Apr         May         Jun         Jul         Aug         Sep         Oct         Nov         Dec       
----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
2022-03-10  2022-01-03  2022-02-07  2022-03-07  2022-04-04  2022-05-02  2022-06-06  2022-07-04  2022-08-01  2022-09-05  2022-10-03  2022-11-07  2022-12-05

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa SQLite Count()

  2. Nie można otworzyć bazy danych w trybie odczytu/zapisu

  3. Jak zainstalować SQLite i SQLite Browser w Ubuntu?

  4. TABELA UPUSZCZANIA SQLite

  5. 5 sposobów na uruchomienie skryptu SQL z pliku w SQLite