• У меня есть БД с данными о резервировании жилья. Каждая запись имеет дату заявки (поле reservated).
    Задача: удалить все заявки, которым более чем 1 сутки и которые не прошли одобрение (поле approve)

    Использовал такой запрос:

    DELETE FROM table
    	WHERE approve=''
    	AND DATE (reservated) NOT BETWEEN DATE( DATE_SUB( NOW() , INTERVAL 24 HOUR ) ) AND DATE ( NOW() )

    Но он удаляет из БД все записи, которые старше не на 24 часа, а на 2 дня.

    Пример:
    сегодня 6 марта 18:00
    По идее, после отправки запроса должны удалиться все записи до 5 марта 18:00
    Но удаляются все записи до 4 марта 23:59

    Что я сделал не так?
    Заранее спасибо за помощь!

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Что я сделал не так?

    https://codex.wordpress.org/wpdb#DELETE_Rows

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

    DELETE FROM wp_reservations1 
    WHERE approve='' AND (reservated) NOT BETWEEN DATE_SUB( NOW() , INTERVAL 24 HOUR ) AND NOW()
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Помогите с MySQL запросом» закрыта для новых ответов.