Разрабатываю веб-приложение. Использую Python3, flask и sqlalchemy.
Необходимо в базе данных хранить большое количество дат. Они будут сравниваться, будет проверяться попадание в диапазон дат. Будет производиться выборка диапазонов дат, для разбиения на промежутки. Также будут производиться выборки в зависимости от года, месяца, числа, часа и минут, в различных вариациях. Например только по одному году или по числу и часу.
Сейчас я склоняюсь к следующему решению:
Получаю дату из формы в datetime -> преобразовываю datetime в timestamp (UNIX-форму) -> сохраняю в БД.
Для выборки преобразовываю текстовую дату в datetime -> datetime в timestamp -> смотрю совпадения по БД.
Вопрос в том, что не совсем понимаю, как, например, с помощью timestamp сделать выборку по определённому месяцу, но с разными годами и прочим.
Как вообще лучше в подобных условиях хранить даты. Приложение очень сильно ориентировано на работу с датами в результате под них была выделена отдельная таблица.
В целом работа будет чем-то напоминать календарь, однако дробление дат будет от года до 1 минуты и поиск всевозможных пересечений, попаданий в диапазон и прочего.