У меня есть эта функция, которая работает очень хорошо, чтобы вычислить неделю месяца - мне это нужно, чтобы начать неделю с понедельникаРассчитать неделя месяца начиная понедельник
CREATE FUNCTION dbo.ufs_FirstofMonth (@theDate DATETIME)
RETURNS DATETIME
AS
BEGIN
RETURN (DATEADD(d, (DAY(@theDate)-1) * (-1) ,@theDate))
END
GO
CREATE FUNCTION dbo.ufs_FirstSunday (@theDate DATETIME)
RETURNS DATETIME
AS
BEGIN
RETURN (DATEADD(d, CASE WHEN DATEPART (dw , dbo.ufs_FirstofMonth(@theDate)) = 1 THEN 0
ELSE 8-DATEPART (dw , dbo.ufs_FirstofMonth(@theDate))
END
, dbo.ufs_FirstofMonth(@theDate)))
END
GO
CREATE FUNCTION dbo.ufs_WeekOfMonth (@theDate DATETIME)
RETURNS INTEGER
AS
BEGIN
RETURN (CASE WHEN DATEPART (dw , @theDate) > DAY(@theDate)
THEN 1 + DATEDIFF(wk, dbo.ufs_FirstSunday(DATEADD(mm,-1,@theDate)) , @theDate)
ELSE 1 + DATEDIFF(wk, dbo.ufs_FirstSunday(@theDate) , @theDate)
END
)
END
Первый код работает отлично - Спасибо! – user2871996