MYSQL выборка записей, которые не обновлялись сутки

Статус
В этой теме нельзя размещать новые ответы.

Raccoon

Участник
Регистрация
31 Июл 2007
Сообщения
176
Реакции
9
Добрый день!
Подскажите как средствами MYSQL выбрать записи за вчерашний день, есть ячейка у каждой записи в формате datetime.
Спасибо.
 
Код:
SELECT * FROM `table` WHERE `datetime` LIKE CONCAT(DATE_ADD(CURDATE(), INTERVAL -1 DAY),"%");
Не очень красиво но работать будет. А вообще вот:
Для просмотра ссылки Войди или Зарегистрируйся
 
Добрый день!
Подскажите как средствами MYSQL выбрать записи за вчерашний день, есть ячейка у каждой записи в формате datetime.
Спасибо.

Обычно на практике я решал это следующим образом:

- у каждой записи есть дата в формате unix timestamp (обычное INT-поле для хранения числа);

- во время выборки указывал два WHERE условия (через AND) - где поле "date" одновременно < такой-то даты и > другой даты (т.е. начала вчерашнего дня).

Однако этот способ годится для записей в целом числе (INT - для UNIX TIMESTAMP), насчёт datetime, к сожалению, не могу сказать - так как не работал.

Но если хорошего решения для datetime не найдётся - как вариант можно изменить/добавить поле для unix timestamp числа, с которым и работать вышеприведенным способом...

P.S. Хотя ещё возможен вариант получения всех записей из MYSQL в массив, но, как правило, такой способ громоздкий и ресурсоёмкий, потому обычно не используется (впрочем и вопрос стоит именно в обработке средствами MySQL) ;)
 
Код:
SELECT * FROM `table` WHERE `datetime` LIKE CONCAT(DATE_ADD(CURDATE(), INTERVAL -1 DAY),"%");
Не очень красиво но работать будет. А вообще вот:
Для просмотра ссылки Войди или Зарегистрируйся

Спасибо, это работает, но я неправильно выразился сначала, надо, чтобы показывались не только записи за вчерашний день, но и за предыдущие.

Т.е. смысл в том, если запись обновлялась в течение 24 часов, её выбирать не надо. А всё что старше, т.е. вчера, позавчера, месяц назад и т.д. - как раз нужно достать из базы и обновить. Как это сделать?
 
Мне кажется должно работать простое сравнение на больше-меньше:
SELECT * FROM `table` WHERE `datetime`<DATE_ADD(NOW(), INTERVAL -1 DAY);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху