用什么函数可以表示两个指定日期间的时间间隔数目,但周六和周日不算里面

datediff函数只能表示两个指定日期间的时间间隔数目,怎样才能把周六周日不算在里面,跳过周六周日,有什么函数吗?... datediff函数只能表示两个指定日期间的时间间隔数目,怎样才能把周六周日不算在里面,跳过周六周日,有什么函数吗? 展开
 我来答
frogley
2014-02-14 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1123万
展开全部
--计算从@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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式