SQL Server,从现有日期变量的dateadd中选择

时间:2015-03-04 17:32:44

标签: sql-server date dateadd

我正在加入两个都有一些日期列的表。 table2具有First_Date和Last_Date列,table1为每个索引列都有许多不同的日期。我想加入他们,其中table1日期是在First_Date之前和之后的10天或者Last_Date之前和之后的10天。 我有这样的事情:

select * from table1 inner join table2 on table1.index=table2.index
where table1.dates between dateadd(day, 10, table2.First_Date) and
dateadd(day, -10, table2.First_Date) or table1.dates between 
dateadd(day,  10, table2.Last_Date) and
dateadd(day, -10, table2.Last_Date)

我没有该代码的输出,我猜SQL被dateadd搞糊涂了,因为对于每个索引,First_Date和Last_Date是不同的。

1 个答案:

答案 0 :(得分:0)

SQL可能会与ANDOR混淆,尝试添加括号。

select * from table1 inner join table2 on table1.index=table2.index
where (table1.dates between dateadd(day, 10, table2.First_Date) and
dateadd(day, -10, table2.First_Date)) or (table1.dates between 
dateadd(day,  10, table2.Last_Date) and
dateadd(day, -10, table2.Last_Date))