一個得到怎樣在兩個日期之間的休息日的SQL Server 的函數

來源:互聯網
上載者:User
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 呵呵



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。