@REDkiy

Как организовать хранение даты в базе данных?

Разрабатываю веб-приложение. Использую Python3, flask и sqlalchemy.

Необходимо в базе данных хранить большое количество дат. Они будут сравниваться, будет проверяться попадание в диапазон дат. Будет производиться выборка диапазонов дат, для разбиения на промежутки. Также будут производиться выборки в зависимости от года, месяца, числа, часа и минут, в различных вариациях. Например только по одному году или по числу и часу.

Сейчас я склоняюсь к следующему решению:
Получаю дату из формы в datetime -> преобразовываю datetime в timestamp (UNIX-форму) -> сохраняю в БД.
Для выборки преобразовываю текстовую дату в datetime -> datetime в timestamp -> смотрю совпадения по БД.

Вопрос в том, что не совсем понимаю, как, например, с помощью timestamp сделать выборку по определённому месяцу, но с разными годами и прочим.
Как вообще лучше в подобных условиях хранить даты. Приложение очень сильно ориентировано на работу с датами в результате под них была выделена отдельная таблица.

В целом работа будет чем-то напоминать календарь, однако дробление дат будет от года до 1 минуты и поиск всевозможных пересечений, попаданий в диапазон и прочего.
  • Вопрос задан
  • 783 просмотра
Пригласить эксперта
Ответы на вопрос 1
@deliro
Хранить в нативном для БД формате. Например, timestamp with time zone в Postgres. Не забудь про индексы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы