SQL - 在多个日期范围内查找记录时出现问题
SQL - Problem finding records in a range for multiple dates
我正在寻找一种方法来提取包含大量可能日期的数据。
日期示例列表:
declare @visitDate table (Id DATE)
insert into @visitDate values ('2009-04-02'), ('2019-04-08'), ('2020-01-23')
记录可以从列出日期之前的 7 天到之后的 7 天。
我试着这样做:
WHERE effectiveDateTime_date BETWEEN DATEADD(day, -7, '2009-04-02') AND DATEADD(day, +7, '2009-04-02')
这适用于设定的日期,但我似乎无法通过一长串要检查的日期来解决这个问题。我有超过 2000 个日期,所以我真的不希望它们出现在“或”语句中。
您可以使用 join
或 exists
:
where exists (select 1
from @visitDate vd
where t.effectiveDateTime_date >= dateadd(day, -7, vd.id) and
t.effectiveDateTime_date <= dateadd(day, 7, vd.id)
)
我正在寻找一种方法来提取包含大量可能日期的数据。
日期示例列表:
declare @visitDate table (Id DATE)
insert into @visitDate values ('2009-04-02'), ('2019-04-08'), ('2020-01-23')
记录可以从列出日期之前的 7 天到之后的 7 天。 我试着这样做:
WHERE effectiveDateTime_date BETWEEN DATEADD(day, -7, '2009-04-02') AND DATEADD(day, +7, '2009-04-02')
这适用于设定的日期,但我似乎无法通过一长串要检查的日期来解决这个问题。我有超过 2000 个日期,所以我真的不希望它们出现在“或”语句中。
您可以使用 join
或 exists
:
where exists (select 1
from @visitDate vd
where t.effectiveDateTime_date >= dateadd(day, -7, vd.id) and
t.effectiveDateTime_date <= dateadd(day, 7, vd.id)
)