if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_WorkDay]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_WorkDay]
GO
--計(jì)算兩個(gè)日期相差的工作天數(shù)
CREATE FUNCTION f_WorkDay(
@dt_begin datetime, --計(jì)算的開始日期
@dt_end datetime --計(jì)算的結(jié)束日期
)RETURNS int
AS
BEGIN
declare @i int
select @i=abs(datediff(dd,@dt_begin,@dt_end))
declare @t table(dt datetime)
if @dt_begin>@dt_end
insert @t select dateadd(dd,number,@dt_end) from master..spt_values
where number<=@i and type='P'
else
insert @t select dateadd(dd,number,@dt_begin) from master..spt_values
where number<=@i and type='P'
return(select count(*) from @t where (datepart(weekday,dt)+@@datefirst-1)%7 between 1 and 5)
END
GO
select dbo.f_WorkDay('2009-10-10','2009-10-1')
/*
-----------
7
(1
主站蜘蛛池模板:
潞城市|
柯坪县|
灌阳县|
兴海县|
临安市|
亚东县|
宜兴市|
灵台县|
吕梁市|
唐河县|
股票|
施秉县|
珠海市|
棋牌|
阜阳市|
高陵县|
武鸣县|
从江县|
修文县|
墨江|
黄骅市|
定州市|
正蓝旗|
商南县|
梓潼县|
沂水县|
绩溪县|
肃宁县|
江西省|
资阳市|
莱阳市|
邢台县|
永城市|
万山特区|
日照市|
高陵县|
陇西县|
沿河|
柞水县|
彭州市|
周宁县|