2014-10-31 3 views
1

У меня проблема с синтаксисом, которую я не могу разобраться. Я просто пытаюсь захватить все записи за последние 3 дня.MySQL Дата и интервал - записи между датами

$result = mysqli_query($link,"SELECT * FROM records WHERE today BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL 3 DAY)"); 

сегодня DB колонка для временной метки MySQL и выглядит следующим образом: 2014-10-30 16:35:58

Этот запрос дает результаты только на 1 день, а не 3. Может ли кто-нибудь помочь с проблема синтаксиса?

+1

'last 3 days' - вы ищете' date_sub' вместо этого? - 'BETWEEN DATE_SUB (CURRENT_DATE, INTERVAL 3 DAY) И CURRENT_DATE' – sgeddes

ответ

4

DATE_ADD(CURRENT_DATE, INTERVAL 3 DAY) означает три дня в будущем, а не три дня назад. Если столбец today должен представлять (скажем) дату, на которую запланирована будущая встреча, вы обычно хотите, чтобы вычесть дней со дня. Итак, получите три дня назад, вам нужно использовать DATE_SUB. Я бы порекомендовал этот вопрос:

SELECT * 
FROM records 
WHERE today >= DATE_SUB(CURRENT_DATE, INTERVAL 3 DAY) 
+0

Это сработало! Спасибо за подробное объяснение. Большое спасибо. – BradM

Смежные вопросы