在SQL Server中计算工作日

时间:2015-11-18 17:57:52

标签: sql sql-server

我创建了一个查询,以便在StartDate之前两天和EndDate之后的两天之间获取员工。它适用于周二和周四的StartDate。如果这些日子在星期五到星期一,它将无法正常工作。我不想在周六和周日计算。

这是我的问题:

select
    FirstName, 
    LastName, 
    StartDate, 
    EndDate
from 
    Students
where 
    StartDate > GetDate()-2 
    AND EndDate < GetDate() +2

如何将其更改为仅计算工作日?

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您的开始日期不能在周末。要排除在周末开始的学生,请添加到where where AND datepart(dw, StartDate) not in (1,7)

select
    FirstName, 
    LastName, 
    StartDate, 
    EndDate
from 
    Students
where 
    StartDate > GetDate()-2 
    AND EndDate < GetDate() +2
    AND datepart(dw, StartDate) not in (1,7)

希望这会有所帮助。如果这个答案对你有用,请务必检查向上箭头!