DATE()
на SQLite функцията ни предоставя възможността да върнем датата на първия екземпляр от даден ден от даден месец. Следователно можем да го използваме, за да върнем първия понеделник от даден месец. Можем да го използваме и за връщане на първия вторник, сряда, четвъртък, петък и т.н.
Можем да използваме DATETIME()
ако искаме да бъде върната стойност за дата и час.
Пример
SELECT DATE('2025-10-20', 'start of month', 'weekday 1');
Резултат:
2025-10-06
В този случай първият понеделник от съответния месец е на 2025-10-06.
start of month
и weekday 1
модификаторите променят датата, посочена в първия аргумент. Неделя е 0, понеделник е 1, вторник е 2 и т.н. Следователно използваме стойност weekday 1
за да изберете понеделник.
Първи понеделник от текущия месец
Този пример минава през процеса, използвайки текущата дата:
SELECT
DATE('now') AS "Now",
DATE('now', 'start of month') AS "Start of Month",
DATE('now', 'start of month', 'weekday 1') AS "First Monday";
Резултат:
Now Start of Month First Monday ---------- -------------- ------------ 2022-03-09 2022-03-01 2022-03-07
Този пример ни показва датата на всеки етап от нейната модификация. Използваме now
за да върнете текущата дата, след това start of month
за да го преместите обратно в началото на месеца, след това weekday 1
за да преместите датата напред към първия понеделник.
DATETIME()
Функция
Можем също да използваме DATETIME()
функция да направи същото нещо. Разликата е, че включва частта от време:
SELECT DATETIME('2025-10-20', 'start of month', 'weekday 1');
Резултат:
2025-10-06 00:00:00