SQL между датами - PullRequest
       8

SQL между датами

1 голос
/ 31 марта 2012

У меня есть таблица с двумя столбцами (startdate & enddate), и у меня есть две даты отправки (2012-02-29 и 2012-03-30) Я пытаюсь получить данные между startdate (2012-02-29) иконечная дата (2012-03-30)

Я пытался

 i.startdate between '2012-02-29' and i.enddate '2012-03-30'

, но это не сработало, я часами гуглял без четкого ответа, любая помощь будетоценил, спасибо заранее.

Ответы [ 5 ]

5 голосов
/ 31 марта 2012

Если я правильно понимаю:

  1. Ваша таблица содержит два поля даты, StartDate и EndDate, которые описывают длительное событие.
  2. Вы хотите найти все события, которые полностью попадают в период, описанный двумя другими датами, в данном случае 2012-02-29 и 2012-03-30.

Если это правильно, используйте это:

 SELECT * FROM Events 
   WHERE StartDate >= '2012-02-29' AND EndDate <= '2012-03-30';
3 голосов
/ 31 марта 2012
SELECT * FROM table_with_dates WHERE (i.startdate  BETWEEN '2012-02-29' AND '2012-03-30') AND (i.enddate  BETWEEN '2012-02-29' AND '2012-03-30')  
1 голос
/ 31 марта 2012
where ('2012-02-29' between i.startdate and i.enddate) and ('2012-03-30' between i.startdate and i.enddate)
0 голосов
/ 31 марта 2012

Так как начальная дата и конечная дата являются отдельными полями, и вы ищете конкретные начальные и конечные даты, между которыми вы на самом деле не нуждаетесь, просто

select ..... from ..... where i.startdate >= '2012-02-29' and i.enddate =< '2012-03-30'
0 голосов
/ 31 марта 2012

Я понимаю, что вы хотите, чтобы обе ваши заявки (две даты) между начальной датой и конечной датой? так что

Where (@firstDate between StartDate and EndDate) and (@secondDate between StartDate and EndDate)
...