以下は、2 つの日付の間に営業日を設定するためのストアド プロシージャです。
Create procedure [dbo].[sp_workingdays](@startdate date,@enddate date,@createddatetime datetime,@adminid int)
as
declare @start date,@end date
declare @day varchar(50)
declare @timeid int
declare @daypare int
declare @workingdaytype varchar(20)
begin
set @start=@startdate
set @end=@enddate
while (@start<=@end)
begin
if @start not in (select Date from Generalholyday_details)
begin
select @day= DATENAME(dw,@start)
select @workingdaytype =case (DATEPART(DW,@start)+@@DATEFIRST)%7 when 1 then 'Leave Day' when 2 then 'Full Day' when 3 then 'Full Day' when 4 then 'Full Day'when 5 then 'Full Day' when 6 then 'Full Day' when 0 then 'Half Day' end
select @timeid=Time_id from Workingdaytimesetting_details where Workingday_type=@workingdaytype
insert into Workingday_details(Working_date,working_day,Time_id) values(@start,@day,@timeid)
update Workingday_details set createddatetime=@createddatetime where createddatetime is null
update Workingday_details set adminid=@adminid where adminid is null
end
set @start=DATEADD(day,1,@start)
end
end
GO
datepart の 1 行目は日曜日です。しかし、実際にストアド プロシージャを実行すると、土曜日は 1 になりました。日曜日に 1 を設定するにはどうすればよいですか。以前のシステムでは、同じ手順で日曜日に 1 を取得しました。