Sql server 2008 如何将SQL Server中的一组日期与另一组日期进行重叠期间的比较

Sql server 2008 如何将SQL Server中的一组日期与另一组日期进行重叠期间的比较,sql-server-2008,datetime,Sql Server 2008,Datetime,我有两套约会。我需要检查SQL Server中的集合A日期是否与集合B日期重叠 最好的方法是什么 A组:年月日 设置B MM/DD/YYYY 更新 这是一个请假申请,如果员工申请请假,我需要检查“从”和“到”是否在同一员工的任何其他待定/批准的请假上超过圈数。在让员工申请休假之前 给定两个日期范围A和B,您可以通过检查A是否在B开始之前开始,A是否在B开始之后结束来测试它们是否重叠。根据您的数据,在SQL中执行此操作应该相当简单: If Exists ( SELECT 1 FRO

我有两套约会。我需要检查SQL Server中的集合A日期是否与集合B日期重叠

最好的方法是什么

A组:年月日

设置B MM/DD/YYYY

更新 这是一个请假申请,如果员工申请请假,我需要检查“从”和“到”是否在同一员工的任何其他待定/批准的请假上超过圈数。在让员工申请休假之前

给定两个日期范围A和B,您可以通过检查A是否在B开始之前开始,A是否在B开始之后结束来测试它们是否重叠。根据您的数据,在SQL中执行此操作应该相当简单:

If Exists
(
    SELECT 1
    FROM LeaveTable
    WHERE State In ('Pending', 'Approved')
    And @ProposedStart < EndDate
    And @ProposedEnd > StartDate
)
BEGIN
    RAISERROR('The proposed leave overlaps.', 16, 1);
    Return;
END;

可能是的副本。为什么不使用标准SQL server数据函数而不是在java中执行此操作?@whowantsakookie。谢谢你的指点。我在搜索中找不到任何相关资料。这和Java有什么关系?他用Java做的。至少我是这么想的。
Date From : 2/10/2013
Date To : 2/20/2013 
If Exists
(
    SELECT 1
    FROM LeaveTable
    WHERE State In ('Pending', 'Approved')
    And @ProposedStart < EndDate
    And @ProposedEnd > StartDate
)
BEGIN
    RAISERROR('The proposed leave overlaps.', 16, 1);
    Return;
END;