2012-11-04 6 views
5

Bir rapor için işe alım ekipmanlarının gelirini hesaplıyorum. Bununla birlikte, normal günlerle kıyaslandığında hafta sonu günlerinde işe alım maliyeti artı% 10 daha fazla olacaktır. Peki, iki tarih arasında kaç hafta sonu olduğunu nasıl hesaplayabilirim. Ve rapor sorgusunda da DECLARE kullanamıyorum. Birisi bunu yapmama yardım edebilir. Bu çalışması gerekirSQL Server'da iki tarih arasında kaç hafta sonu olduğunu hesaplayabilir miyim?

cevap

12

çok teşekkür ederim:

DECLARE @StartDate DATETIME 
DECLARE @EndDate DATETIME 
SET @StartDate = '2012/11/01' 
SET @EndDate = '2012/11/05' 


SELECT 
    (DATEDIFF(wk, @StartDate, @EndDate) * 2) 
    +(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) 
    +(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END) 

http://sqlfiddle.com/#!3/d41d8/5707/0