您的位置:首页 > 其它

计算两个日期相差的工作小时数,过滤了周末双休小时数

2013-11-27 17:17 148 查看
CREATE FUNCTION [dbo].[gdcfn_GetWorkHour](
@dt_begin datetime, --计算的开始日期
@dt_end datetime --计算的结束日期
)RETURNS int
AS
BEGIN
declare @hourNum int
if @dt_begin is null or @dt_begin<@dt_end or @dt_end is null begin set @hourNum=null end

set @hourNum=0
declare @tempDate datetime,@tempEndDate datetime
set @tempDate=@dt_begin --dateadd(dd,1,@dt_begin)
while @tempDate<@dt_end
begin
set @tempEndDate=convert(varchar(10),dateadd(dd,1,@tempDate),120)+' 00:00:00'
if datepart(dw,@tempDate) in(1,7) begin
if @tempEndDate>@dt_end begin set @tempEndDate=@dt_end end
set @hourNum=datediff(HH,@tempDate,@tempEndDate)
end
set @tempDate=@tempEndDate
end
return datediff(HH,@dt_begin,@dt_end)-@hourNum
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: