Avatar billede olsen205 Nybegynder
12. februar 2009 - 08:03 Der er 8 kommentarer og
1 løsning

Datediff funktion

Er der nogle der har en forklaring og en løsning.

select datediff(mm,  '2008-02-12', '2008-08-14')

= 6

Hvorfor??? Der er jo kun gået 5 måneder.

Min teori er at den fortager sin beregning på antal dage, er der nogle der kan bekræfte det? Og er der nogen der har en løsning på det?
Avatar billede fennec Nybegynder
12. februar 2009 - 08:08 #1
Prøv at tæl en gang til. Der er gået 6 måneder.

Start: 2008-02-12
2008-03-12 + 1 måned
2008-04-12 + 2 måneder
2008-05-12 + 3 måneder
2008-06-12 + 4 måneder
2008-07-12 + 5 måneder
2008-08-12 + 6 måneder!!
Avatar billede fennec Nybegynder
12. februar 2009 - 08:09 #2
... Og så 2 dage mere for at komme til 2008-08-14. Så der er gået 6 måneder og 2 dage.
Avatar billede fennec Nybegynder
12. februar 2009 - 08:11 #3
Jeg kan do informere dig om at datediff når den tæller måneder KUN kigger på måneds info (og år). Dage bliver ignoreret.

dvs at datediff(mm,  '2008-01-31', '2008-02-01') = 1 måned selv om der faktisk kun er gået en dag...
Avatar billede olsen205 Nybegynder
12. februar 2009 - 08:12 #4
Jeg mente naturligvis:

select datediff(mm,  '2008-08-14' ,'2009-02-12')



Sorry
Avatar billede olsen205 Nybegynder
12. februar 2009 - 08:15 #5
så løsningen må være noget i denne stil:

select case when day('2008-08-14') > day('2009-02-14') then datediff(mm,  '2008-08-14' ,'2009-02-01') - 1 else datediff(mm,  '2008-08-14' ,'2009-02-01') end

eller kan man skrive det nemmere?
Avatar billede fennec Nybegynder
12. februar 2009 - 08:18 #6
Lige præsis.

Hvis du vil have den til at tælle hele måneder, skal du lave det tjek på dagen, som du selv har fundet frem der...
Avatar billede olsen205 Nybegynder
12. februar 2009 - 08:27 #7
smid et svar, som tak for konstateringen af at den kun regner på måneder.
Avatar billede fennec Nybegynder
12. februar 2009 - 09:02 #8
.o) <-- One Eyed Jack
Avatar billede fennec Nybegynder
12. februar 2009 - 09:04 #9
Der er desuden samme "problem" med yyyy. Der tæller den kun på året.
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