SQL语句如何统计a时间和b时间有多少个工作日?

假设只有周六和周日为节假日... 假设只有周六和周日为节假日 展开
 我来答
leexiaol1108
推荐于2021-02-11 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:150万
展开全部
首先保证,a 与 b 表的时间是 date 或者 datetime 类型:
1、Oracle 写法:

select sum (case when to_char(a.time,'d')-1>=1 and to_char(a.time,'d')-1<=5 then 1
else 0
end)
from tablename a;
2.MSSQL 和 Sybase 写法:

select sum(case when datepart(weekday,a.datetime)-1 >=1 and datepart(weekday,a.datetime)-1<=5 then 1
else 0
end)
from tablename a
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狠有毅毅
2012-08-05 · TA获得超过399个赞
知道答主
回答量:38
采纳率:100%
帮助的人:42.4万
展开全部
declare @a datetime
declare @b datetime
declare @c int
set @a = '2012-07-01'
set @b = GETDATE()
if(DATEPART(WEEKDAY, @a)=1 or DATEPART(WEEKDAY, @a)=7)
set @c = DATEDIFF(DAY, @a, @b)/7 * 5
else
set @c = (DATEDIFF(DAY, @a, @b)/7 * 5) + DATEDIFF(DAY, @a, @b) % 7 - 2

select @c
这样就OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-06-26
展开全部
declare @a datetime
declare @b datetime
declare @c int
set @a = '2012-07-01'
set @b = GETDATE()
if(DATEPART(WEEKDAY, @a)=1 or DATEPART(WEEKDAY, @a)=7)
set @c = DATEDIFF(DAY, @a, @b)/7 * 5
else
set @c = (DATEDIFF(DAY, @a, @b)/7 * 5) + DATEDIFF(DAY, @a, @b) % 7 - 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式