declare @n datetime = dateadd(mm,0,getDate())
declare @FirstWeekDayOfMonth int
SELECT @FirstWeekDayOfMonth= CASE
WHEN Datename(dw, Dateadd(dd, -Datepart(dd, @n) + 1, @n)) = 'Saturday' THEN Day(Dateadd(dd, -Datepart(dd, @n) + 3, @n))
WHEN Datename(dw, Dateadd(dd, -Datepart(dd, @n) + 1, @n)) = 'Sunday' THEN Day(Dateadd(dd, -Datepart(dd, @n) + 2, @n))
ELSE Day(Dateadd(dd, -Datepart(dd, @n) + 1, @n))
END
select @FirstWeekDayOfMonth
Note: to find out first day of next month , change first line to dateadd(mm,1,getDate())
1st day of next N month , change the first line to dateadd(mm,n,getDate())