server|函數 其實這個函數不是SQL Server 提供的,是豆腐編寫的,大家不要因為豆腐篇了大家
就用石頭砸豆腐:)其實 自從這個函數產生以後我們在使用的時候,是根本不可能區分出這個
函數是Sql server 的還是 自訂的函數,這個就是SQL2K 給我們帶來的一個新的特點之一
我們先看看這個函數的意義,其實 最初向我要這個函數的人是 藍,不過當時還沒有 SQL2K,
現在有了SQL2k 我也好容易找到了一些時間來寫這個函數了.這個函數的功能是在任意的兩個
時間之間得到 休息的天數。目前只是處理了雙修日:)
好了,下面我們來看看這個函數,順便通過這個函數我們可以來學習使用一下SQL2k的這個新的功能
CREATE FUNCTION GetVac(@Start datetime,@End datetime)
RETURNS integer AS
BEGIN
declare
@intNum integer,
@intAllDay integer,
@i integer,
@intWeekDay integer,
@tempDateTime datetime,
@intVac integer
select @intAllDay=DateDiff(dd,@Start,@End)
select @i=0
select @intVac=0
while(@i<@intAllDay)
begin
select @tempDateTime=DateAdd(dd,@i,@Start)
select @intWeekDay=datepart(dw,@tempDateTime)-1
if(@intWeekDay=6) or (@intWeekDay=0)
begin
select @intVac=@intVac+1
end
select @i=@i+1
end
return @intVac
END
好的,這個函數產生以後,我們就可以使用這個函數了,比如:
select aa=dbo.GetVac(2000-12-10 00:00:00.000,'2000-12-18 00:00:00.000')
得到的結果是:3 呵呵