2013-04-25 2 views
3

я получаю значение таблицы, как показано ниже таблицыКак группировать данные по неделям в sql?

Name   City    Date 
    a    1    Mar 22 2013 
    b    2    Apr 19 2013 
    c    3    Apr 20 2013 
    d    4    Apr 22 2013 
    e    5    Apr 27 2013 
    f    6    Apr 30 2013 
    g    7    Jun 5 2013 

я получил такие значения, как выше таблица. Сегодняшняя дата - 25 апреля 2013 года. Мне нужно группировать эти значения с +7 и -7, как с 18 апреля 2013 по 2 июня 2013 года. Пожалуйста, помогите мне сделать это.

ответ

3
select * from yourTable 
where DATEDIFF(day,'2013-04-25',[Date]) between -7 and 7 

Если вам нужна текущая дата, когда запрос выполняется затем использовать GETDATE() функцию вместо '2013-04-25'

+0

Большое спасибо .. – soundy

3

В зависимости от текущей даты создается динамически кондиционировать

SELECT * 
FROM dbo.yourTable 
WHERE Date >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE())-7, 0) 
    AND Date < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE())+8, 0)