sql >> Database teknologi >  >> RDS >> Sqlserver

Givet år, måned, dag og ugenummer, hvordan finder man datoen? (Sql Server 2005 Set baseret)

prøv dette:

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

OUTPUT

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

(1 row(s) affected)



  1. Hvordan opretter man et databaselink i MySQL for at oprette forbindelse til Oracle?

  2. Hvordan AI vil ændre softwareudvikling og -test

  3. Migrer SPATIAL-data fra Oracle til Postgresql

  4. Hvordan bruger man % operator fra udvidelsen pg_trgm?