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

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

3 голосов
/ 11 декабря 2008

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

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

Ответы [ 3 ]

5 голосов
/ 11 декабря 2008

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

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

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

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

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

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

4 голосов
/ 11 декабря 2008

ВЫБРАТЬ *
ИЗ событий e
ГДЕ (@startDate МЕЖДУ e.startDate и e.endDate)
ИЛИ (@endDate МЕЖДУ e.startDate и e.endDate)
ИЛИ (@startDate e.endDate)

1 голос
/ 11 декабря 2008

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

...