Как ВЫБРАТЬ данные из таблицы, записанные только за последние три дня

Я записал данные в поле «дата» функцией mysql NOW (). Я хочу ВЫБРАТЬ данные, записанные за последние три дня (сегодня, вчера и позавчера), но не знаю, как это сделать.

SELECT * FROM tlb_students WHERE date ...?... ORDER BY date DESC LIMIT 20

person AJ OP    schedule 09.07.2012    source источник


Ответы (2)


Другой способ сделать это:

SELECT * FROM tlb_students WHERE date < DATE_ADD(CURDATE(),INTERVAL -3 DAY)
person DrinkJavaCodeJava    schedule 09.07.2012

person    schedule
comment
В чем разница между использованием NOW () и CURDATE () Zane? Можно ли получить данные, записанные до позавчера, если я использую это рано утром? - person AJ OP; 09.07.2012
comment
@AJOP NOW() создает метку времени в формате 'YYYY-MM-DD HH:MM:SS', тогда как CURDATE() создает дату в формате 'YYYY-MM-DD', поэтому с NOW() вы получаете сообщения, которые сделаны в ТОЧНО 3 днях от текущего времени, потому что используются часы / минуты / секунды в учетную запись. Предполагается, что ваше поле date относится к типам DATETIME или TIMESTAMP. - person Zane Bien; 09.07.2012