Avatar billede babytrold Nybegynder
01. oktober 2008 - 15:24 Der er 8 kommentarer og
1 løsning

Datoberegning uden weekender

Jeg kunne godt tænke mig at udregne antal minutter for eksempel over en given periode. Det skal være uden weekender, og så skal resultatet helst ikke returnere en negativ værdi hvis der fx er tale om 2 dage midt på ugen.

Start_dato, og slut_dato er mine felter
Avatar billede arne_v Ekspert
01. oktober 2008 - 17:58 #1
SQLServer 2000, 2005 eller 2008 ?
Avatar billede babytrold Nybegynder
02. oktober 2008 - 09:06 #2
Det er SQLServer 2000

-baby
Avatar billede arne_v Ekspert
03. oktober 2008 - 02:47 #3
Så bliver det nok en lang smøre.
Avatar billede zebra_hansen Nybegynder
03. oktober 2008 - 12:27 #4
Hej du kan bruge denne statement:

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 babytrold Nybegynder
03. oktober 2008 - 13:34 #5
1000 TAK! Lige hvad jeg manglede!
Avatar billede zebra_hansen Nybegynder
03. oktober 2008 - 13:49 #6
Hva... så bør der vel falde nogle point? istedet for de ryger retur?
Avatar billede babytrold Nybegynder
03. oktober 2008 - 14:30 #7
Selvfølgelig, men hvordan gør jeg det?
Avatar billede babytrold Nybegynder
24. august 2010 - 11:22 #8
Hvordan kan jeg give dig de manglende point?
Avatar billede arne_v Ekspert
24. august 2010 - 12:28 #9
Du har selv taget pointene her.

Men proceduren i http://www.eksperten.dk/faq#faq-5-3 kan bruges til at klare det problem.
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