MySQL SELECT последние несколько дней? - PullRequest
61 голосов
/ 11 ноября 2009

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

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

Ответы [ 5 ]

133 голосов
/ 11 ноября 2009

Использовать для свидания три дня назад:

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

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

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

WHERE t.date >= ( CURDATE() - INTERVAL 3 DAY )
12 голосов
/ 16 апреля 2014

Вы можете использовать это в предложении MySQL WHERE для возврата записей, которые были созданы за последние 7 дней / неделю:

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

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

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

2 голосов
/ 11 ноября 2009

Вы можете использовать комбинацию функции UNIX_TIMESTAMP () для этого.

SELECT ... FROM ... WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(thefield) < 259200
0 голосов
/ 06 января 2015
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 )
0 голосов
/ 20 марта 2014

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...