【问题标题】:Matching records against datetime intervals根据日期时间间隔匹配记录
【发布时间】:2012-12-04 13:05:07
【问题描述】:

在 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 

【问题讨论】:

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


    【解决方案1】:
    where whateverDate between FromDate and ToDate
    

    【讨论】:

      【解决方案2】:
      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's)等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-15
        • 1970-01-01
        • 1970-01-01
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多