如何在SQL中搜索日期范围的序列

时间:2015-09-18 11:59:24

标签: sql-server-2008

尝试检查日期范围时,它不会返回值。 st_date的{​​{1}}和end_date是序列,因此它应仅返回usr_id = 1个值,并且不应返回usr_id = 1,因为它不是序列。如果日期范围不是按顺序排列,则不应返回任何值。

usr_id = 3

1 个答案:

答案 0 :(得分:0)

SELECT * 
FROM #temp t
    INNER JOIN #temp t2 ON t.usr_id = t2.usr_id AND t.end_date = DATEADD(dd, -1, t2.st_date)
WHERE   @st_dt BETWEEN t.st_date AND t.end_date
    AND @end_dt BETWEEN t2.st_date AND t2.end_date