Avatar billede babytrold Nybegynder
15. oktober 2008 - 16:19 Der er 1 kommentar og
1 løsning

Zebra - Datoberegning uden weekender samt business hours

Zebra,

som lovet her er et åbent spørgsmål - 200 point

Jeg har fået foreslået nedenstående til at eksludere weekender i en beregning.

Kan man evt. udvide så man kan angive at man også ønsker at eksludere timer udenfor åbningsttid?

Fx.
startTime = 0800
endTime = 1800



DECLARE
    @StartDate DATETIME
    ,@EndDate DATETIME
    ,@CorrectedStartDate DATETIME
    ,@CorrectedEndDate DATETIME

SET @StartDate = '2008-09-06 17:58'
SET @EndDate = '2008-09-13 21:59'
SET @CorrectedStartDate = (
    CASE
        WHEN (DATEPART(dw, @StartDate) + @@DATEFIRST) % 7 = 0 then CAST(FLOOR(CAST(DATEADD(DD,2,@StartDate) AS FLOAT )) AS DATETIME) -- 0: Saturday -> forward 2 days, strip time.
        WHEN (DATEPART(dw, @StartDate) + @@DATEFIRST) % 7 = 1 then CAST(FLOOR(CAST(DATEADD(DD,1,@StartDate) AS FLOAT )) AS DATETIME) -- 1: Sunday -> forward 1 day, strip time
        ELSE @StartDate           
    END
)
SET @CorrectedEndDate = (
    CASE
        WHEN (DATEPART(dw, @EndDate) + @@DATEFIRST) % 7 = 0 then CAST(FLOOR(CAST(@EndDate AS FLOAT )) AS DATETIME) -- 0: Saturday -> strip time to reverse to midnight.
        WHEN (DATEPART(dw, @EndDate) + @@DATEFIRST) % 7 = 1 then CAST(FLOOR(CAST(DATEADD(DD,-1,@EndDate) AS FLOAT )) AS DATETIME) -- 1: Sunday -> backwards 1 day, strip time to reverse to midnight.
        ELSE @EndDate           
    END
)

SELECT DATEDIFF(mi, @CorrectedStartDate, @CorrectedEndDate)
  -(DATEDIFF(wk, @CorrectedStartDate, @CorrectedEndDate) * 2 * 1440)
Avatar billede janus_007 Nybegynder
18. oktober 2008 - 20:51 #1
Alt kan lade sig gøre, men jeg vil da gerne lige høre hvad hele idéen med proceduren er?
Avatar billede babytrold Nybegynder
24. august 2010 - 11:21 #2
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester