SQL-запрос, который показывает последний рабочий день месяца.
Мы говорим о нормальных неделях (м-ф), и не включая праздники.Пожалуйста, смотрите мой запрос ниже. Спасибо!
Что я уже пробовал:
CREATE FUNCTION dbo.ufn_LastBusinessDayOfMonth (@Dt datetime) RETURNS datetime AS BEGIN DECLARE @dt2 datetime DECLARE @Df int DECLARE @dSat int DECLARE @dSun int SELECT @dt2 = DATEADD(D, -1, DATEADD(m, 1 + DATEDIFF(m, 0, @Dt), 0)) SELECT @dSat = DATEPART(dw, '2018-01-06') -- Known Saturday SELECT @dSun = (@dSat % 7) + 1 SELECT @dt2 = ( CASE WHEN DATEPART(dw, @dt2) = @dSun THEN DATEADD(DAY, -2, @dt2) WHEN DATEPART(dw, @dt2) = @dSat THEN DATEADD(DAY, -1, @dt2) ELSE @dt2 END) RETURN @dt2 END
Maciej Los
Я вижу это.
Мне нужно сделать что-то еще?