Неверное время в MySQLзапросе

247
09 марта 2017, 22:33

У меня есть БД с данными о резервировании жилья. Каждая запись имеет дату заявки (поле 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

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

Answer 1

Для начала надо посмотреть, что выдает запрос через SELECT.

Возможно, надо исправить запрос таким образом:

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

Напишите, если помогло :)

READ ALSO
GROUP_CONCAT в JOIN

GROUP_CONCAT в JOIN

Есть таблица categories и таблица category_type со связьюМне надо выбрать из таблицы categories категории и для каждой выбрать связи из category_type

228
Объединение строк в mysql

Объединение строк в mysql

Есть таблица с сообщениями пользователейuser_id | message

307
Как правильно организовать поиск в SQlite

Как правильно организовать поиск в SQlite

База данных состоит из 5 таблиц, первые три содержат данные различного рода, а так же специальные метки, по которым их можно найти

287
Генератор текстовых отчётов [требует правки]

Генератор текстовых отчётов [требует правки]

ПриветКто может помочь разобраться в тестовом задании

407