需要找出某个时段和天数的日期

时间:2013-10-22 19:46:03

标签: sql-server-2008

我需要用户按日期给出的结果。 假设用户给出日期2013-01-14和总天数= 2,我需要过滤掉

2013-01-10
2013-01-11
2013-01-14
2013-01-15
2013-01-16

并且它不应该返回12和13的日期,即2013-01-13,2013-01-12

同样如果总天数= 3 那么

    2013-01-09
    2013-01-10
    2013-01-11
    2013-01-14
    2013-01-15
    2013-01-16
    2013-01-17

我怎么可能得到这个。

1 个答案:

答案 0 :(得分:1)

使用DateAdd()函数尝试此操作:

declare @Number int = 2, @Date Date = '20130114' --yyyymmdd format

select col1, col2
from yourTable
where dateCol >= dateAdd(day, -1*@Number, @Date) and dateCol< @Date

更新:您的描述不是很清楚我认为您需要的是在给定日期的+/-范围内选择记录。

select col1, col2
from yourTable
where dateCol >= dateAdd(day, -1*@Number, @Date) and dateCol <= dateAdd(day, @Number, @Date)