有没有办法在 T-SQL 中执行具有一系列增量的 DATEADD()?

Is there a way to perform a DATEADD() with a range of increments in T-SQL?

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

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

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

要构建日期范围,您可以使用计数 table 或行构造函数:

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

试试这样的东西:

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