匹配日期时间间隔的记录

时间:2012-12-04 13:05:08

标签: sql sql-server sql-server-2008 datetime

在SQL Server 2008中,我有一个表,包含事件和事件的日期时间。在另一个表中,我有一个可能的时间间隔列表,如下所示。有没有人有一个例子,说明只有当事件日期时间落在我的间隔表中的间隔内时我才能从事件表中进行选择?

FromDate                ToDate  
-----------------------------------------------           
2012-11-29 06:00:00.000 2012-11-29 07:00:00.000 
2012-11-29 07:00:00.000 2012-11-29 08:00:00.000 
2012-11-29 09:00:00.000 2012-11-29 10:00:00.000 

2 个答案:

答案 0 :(得分:1)

where whateverDate between FromDate and ToDate

答案 1 :(得分:0)

SELECT e.*
FROM Events e
INNER JOIN Intervals i
ON e.EventDate BETWEEN i.FromDate AND i.ToDate
WHERE i.FromDate = '2012-11-29 06:00:00.000'

这是您可以使用的基本查询。它选择一个间隔,并确保EventDate介于其日期范围之间。有了这个,您可以修改查询以执行每个间隔(例如GROUP BY)中的聚合数据等操作。