SQL Server Admin
T-SQL Articles

May 28, 2010

List all the Weekends of the Current Year using SQL Server




Sometime back, I had posted to Find the WeekEnds in this Quarter or Year using SQL Server 2005/2008. An anonymous user wrote back asking if there was a way to determine the first and last day of the current year and rewrite the same query. Well here it is:

DECLARE @StrtDate datetime
DECLARE
@EndDate datetime
SELECT
@StrtDate = DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
SELECT @EndDate = DATEADD(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() )+1, 0))

;
WITH CTE (weekends)
AS
(
SELECT @StrtDate
UNION ALL
SELECT DATEADD(d,1,weekends)
FROM CTE
WHERE weekends < @EndDate
)
SELECT weekends from CTE
WHERE DATENAME(dw,weekends)
In (
'Saturday', 'Sunday')

OUTPUT

image


Did you like this post?
kick it on DotNetKicks.com
subscribe via rss subscribe via e-mail
print this post follow me on twitter



 
  Feedback:

comments

2 Responses to "List all the Weekends of the Current Year using SQL Server"
  1. MyPhotogrphy said...
    July 27, 2010 3:58 AM

    Hi Excellent article.

  2. that lung nam said...
    March 1, 2012 10:49 PM

    Hi, This is great script and will be helpful in multiple ocassions (espically when join with my time dimension), But i have one question though.

    Can some one explain me how
    OPTION (MAXRECURSION 370); works?, Also how do you arrive at this number – 370. I am trying to understand from BoL but still not able to get it. Any help in this regard with be great.

 

Copyright © 2009-2011 All Rights Reserved for SQLServerCurry.com by Suprotim Agarwal | Terms and Conditions