2010-02-24 33 views

回答

0

試試這個:

--given info 
DECLARE @Year  varchar(4) --= 2010 
DECLARE @MonthName varchar(10) --= Feb 
DECLARE @WeekDayday varchar(10) --= Wed 
DECLARE @WeekNumber int   --=4 
SET @Year  ='2010' 
SET @MonthName ='Feb' 
SET @WeekDayday ='Wed' 
SET @WeekNumber =4 


--used to solve 
DECLARE @StartDate datetime 
     ,@EndDate datetime 
     ,@FirstWeek int 

SET @StartDate='01 '[email protected]+' '[email protected] 
SET @[email protected]+38 
SET @FirstWeek=DATENAME(week,@StartDate)-1 

;with AllDates AS 
(
    SELECT @StartDate AS DateOf, DATENAME(week,@StartDate)[email protected] AS WeekOf, DATENAME(weekday,@StartDate) AS WeekDayOf 
    UNION ALL 
    SELECT DateOf+1, DATENAME(week,DateOf+1)[email protected] AS WeekOf, DATENAME(weekday,DateOf+1) AS WeekDayOf 
     FROM AllDates 
    WHERE DateOf<@EndDate 
) 
SELECT 
    DateOf ,WeekOf ,WeekDayOf 
    FROM AllDates 
    WHERE [email protected] AND WeekDayOf LIKE @WeekDayday+'%' 
    ORDER BY DateOf 

輸出

DateOf     WeekOf  WeekDayOf 
----------------------- ----------- ------------------------------ 
2010-02-24 00:00:00.000 4   Wednesday 

(1 row(s) affected) 
相關問題