MySQL SELECT последние несколько дней?

Я играл с MYSQL и знаю тамЭто команда limit, которая показывает определенное количество результатов, но мне было интересно, может ли MySQL один показать только последние 3 дня или что-то в этом роде. Просто интересуюсь.

Обновить: Я использовал NOW () для хранения времени.

 pilcrow11 нояб. 2009 г., 05:52
@ Дуг, пожалуйста, дайте нам немного больше информации. Как ваша запись считает время DATETIMEs, DATEs, TIMESTAMPs, отметки времени эпохи и т. Д.? Вы хотите последние три дня (CURRENT_DATE () - INTERVAL 3 DAYS) или из самой последней записи? И т.п.

Ответы на вопрос(5)

сей, созданных за последние 7 дней / неделю:

created >= DATE_SUB(CURDATE(),INTERVAL 7 day)

Также используйте NOW () в вычитании, чтобы получить разрешение чч: мм: сс. Таким образом, чтобы вернуть записи, созданные точно (с точностью до секунды) за последние 24 часа, вы можете сделать:

created >= DATE_SUB(NOW(),INTERVAL 1 day)

SELECT DATEDIFF(NOW(),pickup_date) AS noofday 
FROM cir_order 
WHERE DATEDIFF(NOW(),pickup_date)>2;

или же

SELECT * 
FROM cir_order 
WHERE cir_order.`cir_date` >= DATE_ADD( CURDATE(), INTERVAL -10 DAY )
Решение Вопроса

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);

ПроверитьDATE_ADD документация.

Или вы можете использовать: "

WHERE t.date >= ( CURDATE() - INTERVAL 3 DAY )
 Talk Nerdy To Me28 февр. 2019 г., 19:54
Вы можете использовать current_timestamp () вместо CURDATE (), если ваше поле даты является отметкой времени, а не датой, для которой требуется более конкретное / точное сравнение.
 SoulRayder21 мар. 2016 г., 08:34
Это должно быть ГДЕ t.date>= DATE_ADD (CURDATE (), ИНТЕРВАЛ -3, ДЕНЬ); (с запятыми) для проверки синтаксиса
 Michael Antonio19 апр. 2015 г., 08:16
DATE_ADD (CURDATE (), INTERVAL -3 DAY) БЫСТРЕЕ
 Strawberry14 нояб. 2009 г., 04:11
Я запускал его через phpmyadmin, если это имеет значение.
 Salman A11 нояб. 2009 г., 07:40
ГДЕ t.date>= (КУРДАТА () - ИНТЕРВАЛ 3 ДНЯ) " должно быть достаточно
 Strawberry14 нояб. 2009 г., 04:10
ОЧЕНЬ ИНТЕРЕСНО! Я попытался запустить это с DATE_ADD, и он продолжал терпеть неудачу из-за синтаксиса. Тем не менее, он работал без DATE_ADD, поэтому я использовал толькоCURDATE() - INTERVAL 3 DAY, Это почему?
 caesarsol16 сент. 2014 г., 13:06
я нахожуBETWEEN (CURDATE() - INTERVAL 1 WEEK) AND CURDATE() быть милым тоже. это внутренне отличается?

SELECT ... FROM ... WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(thefield) < 259200
 Jeremy Visser27 дек. 2012 г., 05:42
@pilcrow Имея это в виду, как бы вы подошли к этому вопросу?
 pilcrow11 нояб. 2009 г., 05:54
@Turnor, осторожно, дни не всегда состоят из 86 400 секунд, что с високосными секундами и летним временем.
 pilcrow27 дек. 2012 г., 13:30
@ JeremyVisser, явычестьINTERVAL 3 DAY, как вдругой ответ.
 Turnor11 нояб. 2009 г., 06:18
Правда. Но это'редко что тыМне нужен такой уровень точности, и это неЗвучит так, как будто это был оригинальный вопрос

WHERE t.date >= DATE_ADD(CURDATE(), INTERVAL '-3' DAY);

используйте кавычки в значении -3

Ваш ответ на вопрос