MySql Query - диапазон дат в диапазоне дат - PullRequest
1 голос
/ 06 июля 2011

Я использую mySql 5 и IIS.
У меня есть products, в котором есть поле start date и поле end date.

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

Пример:

Offer1 - July 1 2011 thru July 31 2011
Query - July 1 2011 thru Sept 15 2011

Results = 31

Example:
Offer1 - July 1 2011 thru July 31 2011
Query - July 1 2011 thru July 15 2011

Results= 15

1 Ответ

4 голосов
/ 06 июля 2011

Если ваш products имеет start_date и end_date, а ваш запрос имеет qstart_date и qend_date, то мы хотим количество дней между:

GREATEST(start_date, qstart_date)

и

LEAST(end_date,qend_date)

. В MySQL я думаю, что это выглядит как

1 + DATEDIFF ( 'd' , GREATEST(start_date, qstart_date) , LEAST(end_date,qend_date) ) 

И вы захотите игнорировать отрицательные числа, заменив их на «0».

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