За последние 24 часа нас посетили 22868 программистов и 1224 робота. Сейчас ищут 782 программиста ...

Выбор из базы за конкретный день MySQL PHP

Тема в разделе "PHP для новичков", создана пользователем AlexProg, 16 янв 2018.

  1. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Туплю... Направьте на путь истинный...

    Как выбрать из базы MySQL за конкретный день? Нужно от сегодня, вчера, и т.д. и так 7 дней.
    НО! Не полностью за 7 дней, а именно за один день.

    Дата в базе int(11) в UNIX формате. Если нужно изменю в человеческий TIMESTAMP или DATETIME.

    Спасибо!
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
  3. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Пробовал. + INTERVAL не подходит. Нужно конкретно за сегодня (только за сегодня, за вчера (только за вчера) и т.д. (за весь день имеется ввиду)
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    PHP:
    1. ... WHERE DATE(`date_column`) = DATE(NOW())
    PHP:
    1. ... WHERE DATE(`date_column`)= DATE(NOW()- INTERVAL 1 DAY)
    И т.д.
     
    AlexProg нравится это.
  5. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    За сегодня согласен, да.

    ... WHERE DATE(`date_column`)=DATE(NOW()- INTERVAL 2 DAY) - не то! Нужно не от сегодня и минус два, а за дату второго дня БЕЗ сегодня.

    Пример: Выбрать для этих дат (за весь день)
    16.01.2018 - NOW() есть
    15.01.2018 - нет (только этот день)
    14.01.2018 - нет (только этот день)
    13.01.2018 - нет (только этот день)
    и т.д.
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Логику включайте. Что определяет какой-то день? Не дата + время, а просто дата. Вот и в условии сравнивайте с датой. Если дата, как вы показали, не в стандартном формате, то приводите к нужному - DATE_FORMAT
    --- Добавлено ---
    Или STR_TO_DATE
     
  7. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    +/- INTERVAL не даёт вам промежуток, как ошибочно может показаться из-за слова interval, оно даёт вполне конкретное значение времени
    upload_2018-1-17_0-7-32.png
     
  8. AlexProg

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

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    @Deonis спасибо! Дата в базе в datetime.

    PHP:
    1. DATE(`datereg`) = DATE(NOW() - INTERVAL 7 DAY)
    Эта конструкция будет брать за седьмой день или сейчас минус 7 дней это 10.01.2018г?
     
  9. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    "сейчас минус 7 дней это 10.01.2018г" А что значит "за седьмой день", я не очень понимаю