-1
現在の日付と時刻の12時間を追加するT-SQL関数を作成するタスクがありますが、休日/週末は含まれません。現在の日付に時間を追加しますが、祝日と週末は除外します
ALTER FUNCTION [dbo].[GetNextWorkingDay_Custom] (@givenDate DATETIME)
RETURNS DATE
AS
BEGIN
DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
DECLARE @DiffDate INT
DECLARE @workingDate DATETIME
IF (DATENAME(dw , @givenDate) = 'Friday')
BEGIN
SET @workingDate = DATEADD(day, 3, @givenDate)
END
ELSE IF (DATENAME(dw , @givenDate) = 'Saturday')
BEGIN
SET @workingDate = DATEADD(day, 2, @givenDate)
END
ELSE
BEGIN
SET @workingDate = DATEADD(day, 1, @givenDate)
END
SELECT @StartDate = START_DATE
,@EndDate = END_DATE
FROM special_time WHERE START_DATE = @workingDate AND IS_HOLIDAY = 1
-- Select count(*) from tblHolidays where holdate = @workingDate
while ((select count(*) from special_time WHERE START_DATE = @workingDate AND IS_HOLIDAY = 1) > 0)
begin
set @DiffDate = DATEDIFF(day,@StartDate,@EndDate)
set @workingDate = dateadd(dd,@DiffDate,@WorkingDate)
end
-- if adding a day makes it a Saturday, add 2 more to get to Monday (and test to make sure the week doesn't start with a holiday)
IF (DATENAME(dw , @workingDate) = 'Saturday')
BEGIN
SET @workingDate = DATEADD(day, 2, @workingDate)
END
RETURN @workingDate
END
あなたはサンプル入力と出力を共有することはできますか? –
これまでに試したことを共有してください。これはコード作成サービスではありません。 – Tanner
だから、どうしたの?これは始めるのに最適な場所です:[パブリックフォーラムでのT-SQL質問の投稿方法](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on -a-public-forum /) – Marusyk