2016-09-29 2 views
1

я ниже таблицу с данными:как получить данные между датами

id startdate finishdate 
4 2015-09-17 2016-09-28 
5 2016-08-17 2016-09-12 

Теперь мне нужно данные для этой даты - 2016-02-02

Например, если я ввести эту дату 2016-02-02 тогда только 1-данные будут отображаться ,

Теперь, если я укажу дату - 2016-08-10, тогда она отобразит обе данные.

я попробовал с:

select * from customer where startdate >='2016-02-02' or finishdate<='2016-02-02' 

, но он не работает.

Как я могу достичь этого?

+0

MySQL или MS SQL Server? Не помещайте те продукты, которые не задействованы. – jarlh

+0

Я удалил несовместимые теги базы данных. Добавьте обратно тег для базы данных, которую вы действительно используете. –

ответ

6

Ваша логика просто назад:

select c.* 
from customer c 
where startdate <= '2016-02-02' and finishdate >= '2016-02-02'; 

Я советую не использовать between дат. Here - действительно хорошее объяснение Аарона Бертранда о том, почему это плохая идея.

+0

Я не уверен, почему отпугивание людей от использования МЕЖДУ необходимостью было частью этого ответа. Многие критические замечания в комментариях в конце объяснения Аарона Бертран являются вполне обоснованными причинами, по которым его взгляд на МЕЖДУ НЕВОЗМОЖЕН. –

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