我有两组日期。我需要检查设置 A 日期是否与 SQL Server 中的设置 B 日期重叠
最好的方法是什么?
A组:(MM/DD/YYYY)
Date from: 1/1/2013
Date To: 2/15/2013
B组(月/日/年)
Date From : 2/10/2013
Date To : 2/20/2013
更新
这是一个请假申请,如果员工申请请假,我需要检查从和到日期是否超过同一员工的任何其他未决/已批准的假期。在让员工申请休假之前。
我有两组日期。我需要检查设置 A 日期是否与 SQL Server 中的设置 B 日期重叠
最好的方法是什么?
A组:(MM/DD/YYYY)
Date from: 1/1/2013
Date To: 2/15/2013
B组(月/日/年)
Date From : 2/10/2013
Date To : 2/20/2013
更新
这是一个请假申请,如果员工申请请假,我需要检查从和到日期是否超过同一员工的任何其他未决/已批准的假期。在让员工申请休假之前。
给定两个日期范围(A
和B
),您可以通过检查是否在结束之前开始和在开始之后结束来测试它们A
是否B
重叠。根据您的数据,在 SQL 中执行此操作应该相当简单:A
B
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;