2015-09-15 4 views
2

У меня есть таблица MySQL, подобную этой:MySQL Выбор даты в пределах количества дней

item | order | start date | end date 
------------------------------------------ 
    1  1  2015-09-15 2015-09-20 
    2  1  2015-09-15 2015-09-20 
    1  2  2015-09-20 2015-09-25 
    2  2  2015-09-20 2015-09-25 

То, что я хочу сделать, это выполнить запрос, который будет проверять, если какие-либо конечные даты в течение 7 дней в будущем даты начала и возврата результата. Кто-нибудь знает, как это можно сделать?

EDIT: Должно быть более конкретным. Я полагаю, что дата начала и дата окончания заказа (например, порядок 2 из таблицы примеров) могут быть в течение 7 дней друг от друга. Я хочу проверить, не заканчивается ли дата завершения заказа 1 в течение 7 дней с даты начала заказа 2. Извините, если это было непонятно раньше.

ответ

4

Вы можете использовать функцию datediff.

select * from table_name 
where 
start_date > curdate() 
and datediff(end_date,start_date) between 0 and 7 
+0

Не вернет ли положительный результат для 'order 2' в моей таблице примеров? – Wes

+0

Да, вы должны получить последние 2 строки из данного примера. –

+0

Но дает ли это положительный результат, даже если дата окончания заказа 1 не была в начале заказа 2, так как у заказа 2 есть дата начала и дата окончания в течение 7 дней друг с другом? – Wes

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