2012-11-04 23 views
5

Sto calcolando il reddito delle attrezzature di assunzione per un rapporto. In questo, il costo di noleggio nei giorni del fine settimana sarà più del 10% in più se confrontato con i giorni normali. Quindi, come posso calcolare c'è quanti giorni del fine settimana tra due date. E nella query del report, non posso nemmeno usare DECLARE. Qualcuno può aiutarmi a farlo. Grazie millePosso calcolare quanti giorni di fine settimana sono disponibili tra due date in SQL Server?

risposta

12

Questo dovrebbe funzionare:

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

Problemi correlati