Я записал данные в поле «дата» функцией mysql NOW (). Я хочу ВЫБРАТЬ данные, записанные за последние три дня (сегодня, вчера и позавчера), но не знаю, как это сделать.
SELECT * FROM tlb_students WHERE date ...?... ORDER BY date DESC LIMIT 20
Я записал данные в поле «дата» функцией mysql NOW (). Я хочу ВЫБРАТЬ данные, записанные за последние три дня (сегодня, вчера и позавчера), но не знаю, как это сделать.
SELECT * FROM tlb_students WHERE date ...?... ORDER BY date DESC LIMIT 20
Другой способ сделать это:
SELECT * FROM tlb_students WHERE date < DATE_ADD(CURDATE(),INTERVAL -3 DAY)
NOW()
создает метку времени в формате 'YYYY-MM-DD HH:MM:SS
', тогда как CURDATE()
создает дату в формате 'YYYY-MM-DD
', поэтому с NOW()
вы получаете сообщения, которые сделаны в ТОЧНО 3 днях от текущего времени, потому что используются часы / минуты / секунды в учетную запись. Предполагается, что ваше поле date
относится к типам DATETIME
или TIMESTAMP
.
- person Zane Bien; 09.07.2012