计算两个日期相差的工作小时数,过滤了周末双休小时数
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
@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
相关文章推荐
- 计算两个日期相差的工作天数,过滤了周末双休天数
- 【Oracle】实现计算两个日期相差工作小时数的Function
- SQL计算两个日期之间相差的工作天数
- 计算两个日期之间相差多少个小时
- PHP计算两个日期相差的年数和剩下的天数,小时数
- JS获取两个日期工作日相差的小时数(不包含周末)----可以指定一天的上班时间
- Java计算两个日期时间相差几天,几小时,几分钟等
- Java计算两个日期时间相差几天,几小时,几分钟等
- java计算两个日期相差多少天小时分钟等
- java计算两个日期相差多少天小时分钟等
- PHP计算两个日期相差天数、小时等
- 在ASP.NET中计算两个日期相差的年、月份、日期、小时、分钟 、秒等
- java计算两个日期间相差多少天多少小时多少分多少秒
- c# 计算两个日期之间相差的小时数
- 在ASP.NET中计算两个日期相差的年、月份、日期、小时、分钟 、秒等
- java计算两个日期相差多少天小时分钟等
- MSSQL计算两个日期相差的工作天数
- 在asp.net中怎么样计算两个日期相差的年、月份、日期、小时、分钟 、妙等
- 计算两个日期之间相差的工作天数