最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MSSQL 計(jì)算兩個(gè)日期相差的工作天數(shù)的語句

 更新時(shí)間:2009年09月29日 22:58:02   作者:  
MSSQL計(jì)算兩個(gè)日期相差的工作天數(shù)的代碼,需要的朋友可以參考下。
復(fù)制代碼 代碼如下:

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 個(gè)資料列受到影響)
*/
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 @workday int,@i int,@bz bit,@dt datetime
set @workday=0
IF @dt_begin>@dt_end
SELECT @bz=1,@dt=@dt_begin,@dt_begin=@dt_end,@dt_end=@dt
ELSE
SET @bz=0
WHILE @dt_begin<=@dt_end
BEGIN
SELECT @workday=CASE
WHEN (@@DATEFIRST+DATEPART(Weekday,@dt_begin)-1)%7 BETWEEN 1 AND 5
THEN @workday+1 ELSE @workday END,
@dt_begin=@dt_begin+1
END
RETURN(CASE WHEN @bz=1 THEN -@workday ELSE @workday END)
END
GO
select dbo.f_WorkDay('2009-10-10','2009-10-1')
/*
-----------
-7
*/

相關(guān)文章

最新評(píng)論

同江市| 宣城市| 大城县| 吴川市| 晋城| 开原市| 合阳县| 额尔古纳市| 老河口市| 田东县| 河南省| 阜南县| 玉树县| 秦皇岛市| 朔州市| 绵竹市| 巧家县| 瓦房店市| 象山县| 岚皋县| 南丰县| 宣武区| 进贤县| 利津县| 静安区| 淮安市| 太和县| 云浮市| 德格县| 余姚市| 孟州市| 平顶山市| 乐亭县| 娱乐| 乌兰县| 建宁县| 东海县| 札达县| 杂多县| 玛多县| 汉阴县|