Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Даден номер на година, месец, ден и седмица, как да намерите датата? (базиран на Sql Server 2005 Set)

опитайте това:

--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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете единичен запис в ляво съединение

  2. Експортиране на колона с изображение в pdf файл в sql сървър?

  3. Грешка 0xc0202049:Задача на потока от данни 1:Неуспешно вмъкване в колоната само за четене

  4. Моментни снимки на базата данни на SQL Server -4

  5. Операцията за изтриване в SQL е много бавна