Получение записей по месяцу и числу
у меня есть таблица событий events, с полем event_date в формате DATE
В нём хранится дата в следующем формате:
1999-09-19 (дата с годом)
09-19 (дата без года)
Мне необходимо получить ближайшие события(которые произойдут в течение следующих 14 дней) к сегодняшнему дню.
Сделал такой запрос, но он работает не так как планировал
start = str(datetime.now().date().strftime("%m-%d"))
end = str((datetime.now().date() + timedelta(days=14)).strftime("%m-%d"))
"SELECT * FROM events WHERE event_date >= ? and event_date <= ?", (start, end)
Помогите пожалуйста с написанием запроса.
Ответы (1 шт):
К сожалению, в SQLite функций для работы с датами почти нет (пруф: пустая документация), как и возможности объявлять пользовательские функции, поэтому все прямые решения будут очень костыльные и громоздкие (вручную разбивать дату-строку на части и считать дни до текущей даты, с учётом разных длин месяцев и т.п..). Я бы предложил либо выгружать релевантные события в Питон и фильтровать события там с использованием модуля datetime, если объём данных небольшой, либо использовать более функциональную СУБД со встроенными функциями по обработке дат – например, в MySQL и PostregSQL существует готовая функция DATEDIFF.