Get First Business day of the Month
In this article, we will discuss how to get First day of the
month and First Business day of the month (Excludes Saturday and Sunday if it
comes on 1st day of month), SQL server does not have direct function
to get all this we need to write some workaround code.
First, get First day of the Month
--This part gets First date of the
month.
Declare @YourDate Datetime='2019-1-15', @FirstDateofMonth Datetime
Set @FirstDateofMonth=DATEADD(M, DATEDIFF(M, 0, @YourDate), 0)
Select(@FirstDateofMonth) 'First
Date'
Now, get First Business day of the Month
--This part gets First date of the
month.
Declare @YourDate Datetime='2019-1-5', @FirstDateofMonth Datetime
Set @FirstDateofMonth=DATEADD(M, DATEDIFF(M, 0, @YourDate), 0)
Select(@FirstDateofMonth) 'First
Date'
Select @FirstDateofMonth=
case
When DATEPART(DW,@FirstDateofMonth) = 1 Then DATEADd(day,1,@FirstDateofMonth) -- Gets Sunday
When DATEPART(DW,@FirstDateofMonth) = 7 then DATEADd(day,2,@FirstDateofMonth) -- Gets Saturday
else @FirstDateofMonth
end --'Business Date
of month'
Return @FirstDateofMonth
Let’s write Function to get First Business day of the Month
Create Function [dbo].[ufnGetFirstBusinessDay](@YourDate Datetime)
Returns Datetime as
Begin
--This part gets First date of the
month.
Declare @FirstDateofMonth Datetime
Set @FirstDateofMonth=DATEADD(m, DATEDIFF(m, 0, @YourDate), 0)
--This part gets First business day of
the month,
--excludes Saturday and Sunday if it
comes on 1st day of month
Select @FirstDateofMonth=
case
When DATEPART(DW,@FirstDateofMonth) = 1 Then DATEADd(day,1,@FirstDateofMonth)
When DATEPART(DW,@FirstDateofMonth) = 7 then DATEADd(day,2,@FirstDateofMonth)
else @FirstDateofMonth
end --'Business Date
of month'
Return @FirstDateofMonth
End
--Select
dbo.GetFirstBusinessDay('2019-6-15')
No comments:
Post a Comment