Как искать дату в SQL?

У меня есть система управления событиями, в которой я хочу,

Если событие зарегистрировано в течение 5 дней (с 21 января 2009 года по 26 января 2009 года), то, если другое лицо хочет зарегистрировать событие в период с 22 января 2009 года по 24 января 2009 года, оно не разрешит зарегистрироваться. Я хочу проверить это с помощью SQL-запроса, поэтому, пожалуйста, скажите мне, как я могу это сделать.

11.12.2008 07:32:31
3 ОТВЕТА
РЕШЕНИЕ

SELECT *
FROM событий e
WHERE (@startDate BETWEEN e.startDate and e.endDate)
ИЛИ (@endDate BETWEEN e.startDate and e.endDate)
ИЛИ (@startDate <e.startDate AND @endDate> e.endDate) e.endDate)

4
11.12.2008 07:38:49

Поиск DATEDIFF в справке SQL.

1
11.12.2008 07:40:35

Просто чтобы завершить другие ответы, у вас есть хорошая статья о том, как искать значения даты и времени с помощью SQL Server 2000

Он напоминает вам о том, как хранятся значения даты / времени (два типа данных даты / времени: datetime и smalldatetime)

Он также указывает, что Datetime и smalldatetime похожи на типы данных с плавающей запятой, с плавающей точкой и на действительные, в том смысле, что они являются приблизительными числами. Это означает, что значение, полученное из SQL Server, может отличаться от значения, которое было изначально сохранено.

Кроме того, он предупреждает о дизайнерах баз данных, которые не всегда используют столбцы даты / времени надлежащим образом. Во время разработки базы данных каждый столбец даты / времени должен быть идентифицирован относительно того, будет ли она хранить даты и время, только даты или только время.

Заканчивается практическими запросами на данные / время .

У вас также есть хорошее описание DATEADD и DATEDIFF здесь .

5
11.12.2008 07:49:33