I been practicing queries, and my current scenario is to find the nearest Saturday for a given date. After i got the logic down, i came up with a, whats looks like a long and me
Well not exactly an answer, but an alternative
DECLARE @DATE DATE,
@SUN DATE,
@MON DATE,
@TUE DATE,
@WED DATE,
@THU DATE,
@FRI DATE,
@SAT DATE
SET @DATE = '2013-09-14'
SET @SUN = DATEADD(DAY,-1,@DATE)
SET @MON = DATEADD(DAY,-1,@DATE)
SET @TUE = DATEADD(DAY,-2,@DATE)
SET @WED = DATEADD(DAY,-3,@DATE)
SET @THU = DATEADD(DAY,2,@DATE)
SET @FRI = DATEADD(DAY,1,@DATE)
SET @SAT = DATEADD(DAY,0,@DATE)
SELECT CASE
WHEN DATENAME(DW,@DATE) = 'SUNDAY'
THEN @SUN
WHEN DATENAME(DW,@DATE) = 'MONDAY'
THEN @MON
WHEN DATENAME(DW,@DATE) = 'TUESDAY'
THEN @TUE
WHEN DATENAME(DW,@DATE) = 'WEDNESDAY'
THEN @WED
WHEN DATENAME(DW,@DATE) = 'THURSDAY'
THEN @THU
WHEN DATENAME(DW,@DATE) = 'FRIDAY'
THEN @FRI
ELSE @SAT
END