June 17, 2008

First weekday of a month in SQL Server

If you are looking out for a query to find the First Weekday of the month, check this out:

DECLARE @varDate DateTime
-- temporary variable to store a day
DECLARE @daynm varchar(10)
-- Date as 6th of May 2008
SET @varDate = '05/06/2008'

SELECT @daynm = DATENAME(dw, DATEADD(dd, - DATEPART(dd, @varDate) + 1, @varDate))
IF( @daynm IN ('Saturday', 'Sunday'))
SET @daynm = 'Monday'
print @daynm

-- returns Thursday

I have chosen the approach to keep the weekday in a variable so as to return it to a calling program. If you do not have such a requirement, you can do the same using a SELECT CASE statement too.

About The Author

Suprotim Agarwal, ASP.NET Architecture MVP works as an Architect Consultant and provides consultancy on how to design and develop Web applications.

Suprotim is also the founder and primary contributor to DevCurry, DotNetCurry and SQLServerCurry. He has also written an EBook 51 Recipes using jQuery with ASP.NET Controls.

Follow him on twitter @suprotimagarwal

No comments: