sql如何计算两个日期间的工作日,剔除节假日
sql如何计算两个⽇期间的⼯作⽇,剔除节假⽇
创建 标量值函数,这个函数会返回⼀个⽇期值, 然后就可以在存储过程中调⽤了, 不过调⽤的⽅式有所不同, 如果不加 dbo,那sql会不认识这个函数, 即 SELECT  [dbo].[f_workdateadd]('2011-8-29',1,3)
徐州休闲
定义节假⽇表
CREATE  TABLE  Holiday(
HDate  date  primary  key  clustered,  --节假⽇期
Name  nvarchar(50)  not  null)                    --假⽇名称,或备注
GO
USE [PCMIS]
GO
/****** Object:  UserDefinedFunction [dbo].[workdateadd]    Script Date: 09/27/2011 14:18:38 ******/
SET ANSI_NULLS ON
GO汕头旅游景点大全排名
SET QUOTED_IDENTIFIER ON
GO
alter function [dbo].[f_workdateadd](
跑跑张博@sndate date,  --产品投⼊⽇
@i int, --为1,开始的⽇期
@j int  --间隔的天数
)returns date
as
begin
全国最好的化妆学校declare @str date
轻音乐推荐declare @str2 date --与@str相互⽐较,取最⼤值
while (@i<=@j)
begin
if (dateadd(DAY,@i,@sndate)  in (select Hdate from Holiday)) --如果遇到节假⽇
begin
set @j=@j+1 --如果遇到节假⽇,时间要延长
end
if (dateadd(DAY,@i,@sndate) not in (select Hdate from Holiday)) --没有遇到节假⽇
begin
select @str=dateadd(DAY,@i,@sndate)
if (@i=1)
begin
set  @str2=@str
end
else
if (@i>1)
begin
if (@str>@str2)
set @str2=@str
end
end
set @i=@i+1
end
return (@str2)会计证报考条件
end

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。