SQLite
 sql >> база данни >  >> RDS >> SQLite

Вземете първия, втория, третия или четвъртия понеделник от месеца в SQLite

Можем да използваме DATE() на SQLite функция за извършване на изчисления на дадена дата. Едно от нещата, които можем да направим, е да върнем първия, втория, третия или четвъртия екземпляр от даден ден в рамките на даден месец.

Пример

Ето пример за демонстрация:

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

Резултат:

First       Second      Third       Fourth      Fifth     
----------  ----------  ----------  ----------  ----------
2025-10-06  2025-10-13  2025-10-20  2025-10-27  2025-11-03

В този пример началната дата е една и съща за всички екземпляри, както и за повечето аргументи. Единственото нещо, което се променя, е колко добавяме към началото на месеца. Ако не добавим нищо, можем да върнем първия понеделник, добавянето на 7 дни връща втория понеделник и т.н.

Тук използваме start of month за да върнете датата обратно към първия ден от месеца. След това използваме повече модификатори, за да променим съответно тази дата.

weekday 1 модификаторът премества датата напред към следващия понеделник (неделя е 0, понеделник е 1, вторник е 2 и т.н.).

За да получим втория понеделник, можем да използваме +7 days за напредване на датата с една седмица. За следващите понеделници добавяме 7 дни към това число (+14 days). , +21 days , +28 days и др.).

Можем също да видим, че добавянето на 28 дни връща първия понеделник на следващия месец.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте Firebase DB с локална DB

  2. SQLiteDiskIOException:код на грешка 10:грешка в дисковия вход/изход се връща на ICS и Samsung Nexus на DROP TABLE

  3. По-добре е да използвате адаптер за курсор или адаптер за масив

  4. JSON функции и оператори в SQLite (пълен списък)

  5. УНИКАЛНО ограничение на SQLite