由table來設定是否為工作日,(如果為節假日則設定為非工作日,即talbe會設定每天是否為工作日)
帶入的日期必須為工作日。
alter
function
[dbo].
[fn_workdayadd](
@date
datetime
, @days
int)
returns
datetime
--nvarchar(100)
asbegin
declare
@iint
--計算工作天
set@i=1
declare
@flag
nvarchar(10
)--是否為工作天
while(@i
<=
@days
)begin
ifexists
(select
top1
flag
from
dbo.bcc_admin_workday
where
flag='
y'andconvert
(nvarchar(10
),date,
120)
=convert
(nvarchar(10
),@date+1
,120
))--
工作天begin
set@i=@i
+1set@date
=@date+1
set@flag='
y'end
else
begin
set@date
=@date+1
set@flag='
n'end
continue
end--最後一天是工作天,看其後是否有不為工作天的
while
exists
(select
top1
flag
from
dbo.bcc_admin_workday
where
convert
(nvarchar(10
),date,
120)
=convert
(nvarchar(10
),@date+1
,120
) and
flag='n')
begin
set@date
=@date+1
endreturn
convert
(nvarchar(10
),@date
,120)--
+' '+@flag
end
計算工作日
vb vba中計算工作日 僅剔除星期 六 日 的函式。function getworkdaycount startday as date,endday as date as integer dim nums as integer,numy as integer dim weekdaynumy 7,6...
轉貼 工作日的計算
using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...
sql計算工作日函式
這個演算法還不夠嚴謹,沒有考慮到周 六 日調換假期等細節的情況。1 建節假日表 create table holiday id int identity 1,1 not null name nvarchar 50 collate chinese prc ci as not null begindat...