Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос по нескольким интервалам дат  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Привет всем!

Дана таблица с полем типа datetime.

Нужно выбрать все записи с датами, которые отличаются на плюс-минус 10 дней от текущего дня в прошлых годах.

Например, если сегодня 19.10.2009, то запрос должен выбрать все записи с датами:
09.10.2005-29.10.2005,
09.10.2006-29.10.2006,
09.10.2007-29.10.2007,
09.10.2008-29.10.2008.
19 окт 09, 12:37    [7804496]     Ответить | Цитировать Сообщить модератору
 Re: Запрос по нескольким интервалам дат  [new]
Glory
Member

Откуда:
Сообщений: 104760
И в чем проблема отнять/прибавить для текущей даты заданный интервал ?
19 окт 09, 12:40    [7804515]     Ответить | Цитировать Сообщить модератору
 Re: Запрос по нескольким интервалам дат  [new]
Jovanny
Member

Откуда:
Сообщений: 1195
Да, действительно, как-то сразу не догадался.

Решение такое:

DECLARE @race_datetime DATETIME
SET @race_datetime = '2009-01-05 00:00:00.000'

SELECT  race_datetime
FROM     Races
WHERE race_datetime BETWEEN
dateadd(day, -10, dateadd(year, datediff(year, @race_datetime, race_datetime), @race_datetime))
AND dateadd(day, 10, dateadd(year, datediff(year, @race_datetime, race_datetime), @race_datetime))

Вопрос снимается.
19 окт 09, 12:50    [7804629]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить