sql >> データベース >  >> RDS >> Sqlserver

年、月、日、週の番号を指定して、日付を見つける方法は? (Sql Server 2005 セット ベース)

    これを試してください:

    --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)
    



    1. SQLはSELECTを制限しますが、JOINは制限しません

    2. Hibernateシーケンスが生成されない

    3. MysqlからAndroidアプリケーションのデータを一覧表示できません

    4. MySQL 1つの行の一意性に基づいてDISTINCTの複数の列を選択しますか?