Exec uspGet_WorkingDay ‘2008/1/1’
程序內容如下:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
create proc [dbo].[uspGet_WorkingDay] @datet1 datetime
as
begin
declare @counter1 int
declare @day_count int
select @counter1 = 0
select @day_count=4
while @counter1 < @day_count
begin
if (datepart(weekday,dateadd(dd,+1,@date1)) != 1 AND datepart(weekday,dateadd(dd,+1,@date1)) != 7)
select @counter1=@counter1+1
select @date1=dateadd(dd,+1,@date1)
end
select @date1 as workingday
end
請問一下執行完會有什麼結果,小弟有點笨實在是看不出來,我是想學資料庫的新手
正確來說是求 傳入的日期 之後扣掉(六)(日)的第四天
datepart(weekday,dateadd(dd,+1,@date1)) != 1 --表非星期日datepart(weekday,dateadd(dd,+1,@date1)) != 7 --表非星期六
大概意思為,從 ‘2008/1/1’ 的明天起算 4 天內
,有幾個可工作日(周1到周5,排除六(7),日(1))。
PS。沒實際測試,數值部份可能有差異。
看起來比較像是,2008/1/1 之後的第四個工作天是哪一天 (2008/1/7),因為最後的 Output 是 @date1