Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uzyskać liczbę dni weekendowych z zakresu dat?

Oto jest

DECLARE @STARTDATE DATE='01/JAN/2014'    
DECLARE @ENDDATE DATE='01/MAR/2014'

;WITH  CTE as
(
    SELECT  CAST(@STARTDATE AS DATE) as [DAYS] 
    UNION ALL
    SELECT DATEADD(DAY,1,[DAYS]) [DAYS]
    FROM    CTE
    WHERE   [DAYS] < CAST(@ENDDATE AS DATE)
)
SELECT DISTINCT COUNT([DAYS]) OVER(PARTITION BY DATENAME(WEEKDAY,[DAYS])) CNT,
DATENAME(WEEKDAY,[DAYS]) WD
FROM CTE 
WHERE DATENAME(WEEKDAY,[DAYS]) = 'SATURDAY' OR DATENAME(WEEKDAY,[DAYS]) = 'SUNDAY'
ORDER BY DATENAME(WEEKDAY,[DAYS]) 

Oto Twój wynik



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dane wyjściowe z bieżącego miesiąca?

  2. Samouczek SQL Server — wszystko, czego potrzebujesz do opanowania języka Transact-SQL

  3. Funkcje TRIM, LTRIM i RTRIM programu SQL Server

  4. Wstaw dane z db do innego db

  5. Zrozumienie analizatora obciążenia w celu mapowania wąskich gardeł wydajności