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

Върнете края на месеца в SQLite

В SQLite можем да използваме следния метод, за да изчислим последния ден от даден месец.

Можем да базираме това или на текущата дата, или на друга конкретна дата.

Последен ден от текущия месец

Ето пример, който връща последния ден от текущия месец:

SELECT DATE('now', 'start of month', '+1 month', '-1 day');

Резултат:

2022-03-31

Това използва DATE() функция за връщане на резултатите, които искаме. 'now' аргументът връща текущата дата и 'start of month' аргумент го променя към началото на месеца. След това използваме '+1 month' за да добавим месец към началото на месеца (което ще го измести напред към началото на следващия месец), след това намаляваме тази дата с един ден (за да я върнем в края на първоначалния месец).

Последен ден от посочения месец

Но както споменахме, ние не сме ограничени само до края на текущия месец. Можем да посочим всяка дата и тя ще върне края на месеца въз основа на тази дата.

Ето няколко примера:

SELECT 
    DATE('2023-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
    DATE('2023-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
    DATE('2023-12-10', 'start of month', '+1 month', '-1 day') AS Dec;

Резултат:

Feb         Nov         Dec       
----------  ----------  ----------
2023-02-28  2023-11-30  2023-12-31

Можем да видим, че SQLite е достатъчно умен, за да определи колко дни има всеки месец. Когато използваме '+1 month' , SQLite знае колко дни има всеки месец. Виждаме, че февруари има 28 дни, 30 ноември, а декември 31.

Ако преместим първоначалната дата напред към 2024 г., можем да видим, че февруари има 29 дни в тази година:

SELECT 
    DATE('2024-02-10', 'start of month', '+1 month', '-1 day') AS Feb,
    DATE('2024-11-10', 'start of month', '+1 month', '-1 day') AS Nov,
    DATE('2024-12-10', 'start of month', '+1 month', '-1 day') AS Dec;

Резултат:

Feb         Nov         Dec       
----------  ----------  ----------
2024-02-29  2024-11-30  2024-12-31

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Сортирайте по приоритет, но поставете 0 последно

  2. близо до грешка в synatx (код 1) вмъкнете Android SQLite

  3. Вмъкване на SQLite

  4. Могат ли записи в базата данни, добавени от елементи, да бъдат изтрити с бутон?

  5. Автоматичното нарастване на основния ключ на SQLite не работи