您好,欢迎来到保捱科技网。
搜索
您的当前位置:首页日期函数的计算(计算两个日期的天数差,除去工作日(工作日表自己定义))

日期函数的计算(计算两个日期的天数差,除去工作日(工作日表自己定义))

来源:保捱科技网

1.节假日表

CREATE TABLE [DicDate] (
 [ID] [int] IDENTITY (1, 1) NOT NULL ,
 [DateStr] [varchar10] NULL ,
 [WorkFlag] [Flag] NOT NULL CONSTRAINT [DF_DicDate_WorkFlag] DEFAULT ('1101'),
  CONSTRAINT [PK_DicDate] PRIMARY KEY  CLUSTERED 
 (
  [ID]
 )  ON [PRIMARY] 
) ON [PRIMARY]
GO

注释:ID,为主键自动增长,DataStr为日期,例如'2009-10-01',WorkFlag为是否是工作日如果是“是”为“1101”,如果是否为"1100"

 

2.计算函数

createFUNCTION dbo.f_WorkDay(
@dt_begin datetime,  --计算的开始日期
@dt_end  datetime   --计算的结束日期
)RETURNS int
AS
BEGIN
 --IF @dt_begin>@dt_end
  
  RETURN(DATEDIFF(Day,@dt_begin,@dt_end)
   +1-(
    SELECT COUNT(*) FROM DicDate
    WHERE  WorkFlag='1100' and DateStr BETWEEN @dt_begin AND @dt_end)) 
 //该计算表示:首先算出两个日期之间的差,然后去统计节假日表里面“非工作日”一共的天数,然后再相减,得到的就是两个日期间除去指定工作日之间的天数
 END
GO

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoaiwan.cn 版权所有 赣ICP备2024042794号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务