復(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
--計算兩個日期相差的工作天數(shù)
CREATE FUNCTION f_WorkDay(
@dt_begin datetime, --計算的開始日期
@dt_end datetime --計算的結(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 個資料列受到影響)
*/
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
--計算兩個日期相差的工作天數(shù)
CREATE FUNCTION f_WorkDay(
@dt_begin datetime, --計算的開始日期
@dt_end datetime --計算的結(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
*/
您可能感興趣的文章:- SQL Server 日期函數(shù)CAST 和 CONVERT 以及在業(yè)務(wù)中的使用介紹
- SQLserver中用convert函數(shù)轉(zhuǎn)換日期格式的方法
- SQL Server 日期相關(guān)資料詳細(xì)介紹
- sqlserver獲取當(dāng)前日期的最大時間值
- sqlserver中如何查詢出連續(xù)日期記錄的代碼
- sql 查詢本年、本月、本日記錄的語句,附SQL日期函數(shù)
- Sqlserver 常用日期時間函數(shù)
- 根據(jù)日期知道當(dāng)天是星期幾的手動計算方法
- 按日期選擇最晚日期與最早日期對應(yīng)的數(shù)的差值
- SQL Server自動生成日期加數(shù)字的序列號
- SQL 返回期間內(nèi)的所有日期
- 數(shù)據(jù)庫 日期加減處理
- sql語句中如何將datetime格式的日期轉(zhuǎn)換為yy-mm-dd格式
- 在SQL中使用convert函數(shù)進(jìn)行日期的查詢的代碼
- SQL Server日期計算
- SQL Server各種日期計算方法(收藏)
- SqlServer中的日期與時間函數(shù)