2015-10-31 5 views
0

У меня есть SQL заявление, которое, как ожидается, выбрать все дни, по крайней мере за семь дней до сегодняшнего дняMYSQL выберите даты до сегодняшнего дня

Я использовал код следующим образом:

SELECT * FROM letter WHERE letter.l_date > DATE_SUB(CURDATE(), INTERVAL 7 DAY) 

Но не получил желаемого результат. Я не понимаю, в чем я ошибаюсь. Может ли кто-нибудь помочь мне?

+0

ли лет в виду все дни до сегодняшнего дня excep t последние 7 дней? Или, другими словами, все даты старше 7 дней назад? – mivk

ответ

0

поэтому данные, если вы хотите только за последние семь дней, включая сегодняшний день, вам нужно указать, что l_date это до сих пор:

SELECT * FROM letter WHERE letter.l_date < DATE_SUB(CURDATE(), INTERVAL 7 DAY) 
+0

Мне нужны все даты, без диапазона 7 дней с сегодняшнего дня. (например: - даты до 2015-2014 годов). Иными словами, исключая последние семь дней с сегодняшнего дня. – Xtern

+0

Нужны ли вам и после сегодняшнего дня? –

+0

до сегодняшнего дня. Но за исключением 7 дней с сегодняшнего дня – Xtern

1

если вам нужны последние 7 дней использования DATE(NOW()) - INTERVAL 7 DAY

SELECT * FROM letter WHERE letter.l_date > DATE(NOW()) - INTERVAL 7 DAY 
+0

Мне нужны все даты, которые находятся в 7 днях с сегодняшнего дня – Xtern

+0

SELECT * FROM letter WHERE letter.l_date> = DATE (NOW()) - INTERVAL 7 DAY –

+0

вы можете попробовать этот вопрос? –

0

Другой способ можно использовать функцию DATEDIFF

SELECT * FROM letter WHERE DATEDIFF(NOW(), letter.l_date) > 7 
Смежные вопросы