MySQL. Выборка записей за сегодня-вчера/неделю/месяц

Главная  >>  Базы данных  >>  MySQL  >>  MySQL. Выборка записей за сегодня-вчера/неделю/месяц

Выборка данных за определенный период очень частая задача, которая решается крайне просто. Среди множества вариантов решения в сети меня лично прильщает или использование INTERVAL или применение следующих методов.

За сегодня

За вчера

За неделю

За месяц (За 30 дней)


  • Владимир Сергеев

    «за вчера» по всей логике надо не больше, а меньше?
    AND tc_date < CURDATE()

    • http://onfor.info onfor

      Спасибо, исправил!

  • Илья Максимов

    а если нужно сделать выборку за неделю (за каждый день отдельно)
    id| day | item
    1 | 2017-09-01 | 3
    2 | 2017-09-04 | 5
    3 | 2017-09-05 | 7
    4 | 2017-09-06 | 2

    + если нет какого то дня в базе данных, на выходе за эту дату выходило значение =0

    [
    [‘day’ =>’2017-09-01′, ‘item’=>3],
    +
    [‘day’ =>’2017-09-02′, ‘tem’=>0],
    [‘day’ =>’2017-09-03′, ‘item’=>0],
    [‘day’ =>’2017-09-04′, ‘item’=>0],
    +
    [‘day’ =>’2017-09-04 ‘, ‘item’=>5],
    [‘day’ =>’2017-09-05′ , ‘item’=> 7],
    [‘day’ =>’2017-09-06′ , ‘item’=>2]
    ]

    • http://onfor.info onfor

      Попробуйте сделать GROUP_BY( DAY(‘date_field’) ).

  • 3a4em

    такой ты умник блин. ну сделай (CURDATE() -1) если сегодня 01.10.2018. Люди начитаются статей таких горе-кодеров, а потом мучаются.

    • http://onfor.info onfor

      Напишите лучше. Если знаете ответ — зачем ищите решение в интернете?