mrusklon
@mrusklon

Как правильнее хранить дату в mysql и делать выборку по ней от и до?

Есть у меня в таблице колонка с датами вида DD.MM.YYYY , точнее колонки еще нет , это только на стадии планирования,
мне надо будет делать выборку так же как по id , например с 76 по 936 , только по дате например с 10.03-2018 по 21.12.2018

сами даты будет указывать человек через датапикер , там насколько я знаю можно настроить формат DD.MM.YYYY как угодно? как только это все провернуть, может делать формат ячейки не date , а варчар? Или это не правильно совсем?
А как запрашивать дату в запросе от и до? Это уже часть WHERE ?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
shindax
@shindax
Живой. Подвижный. Саркастичный.
Если в поле будет храниться дата, то и брать нужно тип поля "дата". Формат даты в MySQL "Год-месяц-день". Не вижу никаких проблем преобразовать число в формате "дд.мм.год" в формат понятный MySQL. В запросе все выглядит логично:
SELECT * FROM `table` WHERE `id` >= 76 AND `id` <= 936 AND`date` >= '2018-01-10' AND `date` <= '2018-02-01'
#или
SELECT * FROM `table` WHERE `date` BETWEEN '2018-09-10' AND '2018-11-10'
#или
SELECT * FROM `table` WHERE `date` IN ( '2018-09-10', '2018-11-10', '2018-10-10' )

Ещё есть интервальные функции и функции извлечения отдельных временных данных, типа YEAR( `data`), MONTH(`data`), DAY(`data`) и.т.д. В целом, работа с ними осуществляется как и с другими типами полей. MySQL сам со всем этим разбирается. Полагаю, для начала такой информации Вам будет достаточно. :) Вывод даты из MySQL можно форматировать к нужному виду :
SELECT DATE_FORMAT(`date`,"%d.%m.%Y") AS `date` FROM `table` WHERE id=1

Выведет что-нибудь подобное : "01.01.2018"
Ответ написан
@Fixid
Дата должна храниться или в Date или DATETIME или в INT как unixTime.
При запросе указываете диапазон в WHERE. В целом в MySQL богатый функционал по работе с датой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы