
用什么函数可以表示两个指定日期间的时间间隔数目,但周六和周日不算里面
datediff函数只能表示两个指定日期间的时间间隔数目,怎样才能把周六周日不算在里面,跳过周六周日,有什么函数吗?...
datediff函数只能表示两个指定日期间的时间间隔数目,怎样才能把周六周日不算在里面,跳过周六周日,有什么函数吗?
展开
展开全部
--计算从@date1到@date2经过了多少个工作日(周一到周五)
declare @date1 datetime,@date2 datetime;
set @date1='2014-02-14';
set @date2='2014-03-14';
--以下两个方法均要求@date1<=@date2
--方法一:用一张辅助的整数表
set datefirst 1;
select count(*)
from nums --nums是从1到1000000的整数表
where n<=datediff(day,@date1,@date2)
and (datepart(weekday,@date1)+n)%7 between 1 and 5;
--方法二:直接计算
set datefirst 1;
select datediff(day,@date1,@date2)/7*5
+datediff(day,@date1,@date2)%7
-(case
when datepart(weekday,@date1)+datediff(day,@date1,@date2)%7 =6 then 1
when datepart(weekday,@date1)+datediff(day,@date1,@date2)%7 >6 then 2
else 0
end)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |