За последние 24 часа нас посетили 17804 программиста и 1625 роботов. Сейчас ищут 1886 программистов ...

Выборка данных с фильтром дат

Тема в разделе "MySQL", создана пользователем Intrerio, 13 янв 2017.

  1. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    Добрый день друзья.
    Никогда не было надобности фильтровать даты прям в БД, делал все в php , а тут пришлось и упреся в проблему. Собственно задача:
    Есть БД и в ней таблица blanks
    В данной таблице есть поле date_start . Тепер задача:
    Нужно сделать запрос SELECT * FROM `blanks` WHERE а вот тут уже фильтр:
    количество дней между сегодняшней датой и датой date_start (формат YYYY-MM-DD) не должно превышать 15. Тоесть промежуток между двумя датами должен составлять 15 дней. Так же будет выборка свыше 15 дней но тут если я пойму механизм то думаю сам дойду к решению.
    Заранее спасибо
    --- Добавлено ---
    Я понял что мне проще сделать это же на PHP . Сделал все проверки и вставил в запрос только BETWEEN first_date AND last_date . Всем спасибо
     
  2. Intrerio

    Intrerio Активный пользователь

    С нами с:
    20 мар 2015
    Сообщения:
    176
    Симпатии:
    7
    И ничего не вышло на php без изменений запроса. задача меняеться:
    Нужен запрос типа SELECT * FROM `blanks` WHERE date_start минус date_ukl не больше 15 дней
    Кто поможет?
     
  3. retvizan

    retvizan Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    68
    Симпатии:
    22
    ... WHERE date_start > now() - interval 15 days
    предполагается что date_start всегда меньше текущей даты
    иначе используйте http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_datediff
     
    artoodetoo нравится это.
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    тут необходимо уточнить, что даты должны быть натуральные, т..е. типа DATE, DATETIME или TIMESTAMP, а не как это принято у доблоебов VARCHAR
    --- Добавлено ---
    я всегда дёргаюсь когда вопрошающий уточняет типа "формат YYYY-MM-DD". друг, если у тебя настоящие даты, а не строки, то "формат" без вариантов такой, можно и не уточнять.
    --- Добавлено ---
    SQL это почти идеальный инструмент для обработки множеств. выразительный и мощный. перекладывать на PHP стоит только форматирование результата перед выводом.