有没有一种方法可以在T-SQL中以一定范围的增量执行DATEADD()?

时间:2019-12-12 16:13:31

标签: tsql date datediff

寻找获取日期范围为特定日期+/- 3天的列的快捷方式。我还没有找到一个优雅的捷径。我的前提可能不对,我还没有找到在DATEADD()的增量参数中具有一系列值的方法,但这就是我要做的要点。

SELECT    
    DATEADD(dd, BETWEEN -3 AND 3, x.myDate)       [Dates]
FROM
    myTable x

我知道这行不通,但想知道是否有等效的快捷方式来获取所需日期。

2 个答案:

答案 0 :(得分:4)

要构建日期范围,可以使用提示表或行构造器:

SELECT *,
       DATEADD(dd, s.c, x.myDate)       [Dates]
FROM myTable x
CROSS APPLY (VALUES (-3),(-2),(-1),(0),(1),(2),(3)) s(c);

db<>fiddle demo

答案 1 :(得分:0)

尝试类似的东西:

DECLARE @targetDate DATETIME = target
SELECT    
    x.myDate [Dates]
FROM
    myTable x
WHERE
    DATEDIFF(dd, x.MyDate, @targetDate) BETWEEN 3 AND -3