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

Как да получа броя на почивните дни от диапазон от дати

Ето го

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

Ето вашия резултат



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи функцията STRING_ESCAPE() в SQL Server (T-SQL)

  2. Промяна на Sql-сървър (експресен) от именуван екземпляр на localhost?

  3. SQL Server 2005 Как да създадете уникално ограничение?

  4. Ще се представят ли заявките ANSI JOIN спрямо не-ANSI JOIN по различен начин?

  5. Как да възстановите база данни на SQL Server на Mac с помощта на SQL Operations Studio