Avatar billede the_saint Nybegynder
18. december 2007 - 16:46 Der er 1 kommentar og
1 løsning

Finde aftaler som overlapper en dato range

Hej eksperter.

Jeg har en tabel (appointments) med følgende felter:

start (Datetime)
end (Datetime)

Jeg skal nu lave en søgning som finder alle aftaler som overlapper en dato range.

ie:

Så har jeg oprettet en aftale med følgende værdier:
start = 2007-12-18 10:00:00
end = 2007-12-18 14:00:00

Og nu vil jeg lave en søgninge med følgende værdier:

start = 2007-12-18 11:00:00
end = 2007-12-18 12:00:00

Og den skal finde ovenstående aftale.

På forhånd tak.
Mvh.
Avatar billede the_saint Nybegynder
18. december 2007 - 17:07 #1
SELECT * FROM appointments WHERE (start >= '2007-12-18 11:00:00' AND `end` <= '2007-12-18 12:00:00') OR (start <= '2007-12-18 11:00:00' AND `end` >=  '2007-12-18 12:00:00') OR (start >= '2007-12-18 11:00:00' AND start <=  '2007-12-18 12:00:00') OR (`end` >= '2007-12-18 11:00:00' AND `end` <=  '2007-12-18 12:00:00')

Testede lige med den, umiddelbart ser den rigtig ud - men vil gerne høre om andre har erfaring med det? Og evt. kender nogle "situationer" den der ikke dækker under.
Avatar billede the_saint Nybegynder
31. januar 2008 - 21:46 #2
Svar
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