Avatar billede mads1987 Nybegynder
06. december 2006 - 10:29 Der er 1 kommentar og
1 løsning

MySQL query

Jeg er ved at lave et simpelt bookingsystem.
Når jeg skal tjekker om datoen er booket, skal jeg ud i en noget kryptisk sql query.

Min database ser således ud:
id
start (f.eks. 2006-12-05)
slut (f.eks. 2006-12-14)

Når jeg skal oprette en booking skal jeg spørge om datoerne jeg ønsker at booke er ledige.

Querryen skal altså:
"Finde ud af om [intervallet] mellem den ønskede start/slut dato, lapper ind over [intervallet] af datoerne i databasen?"

Bliver det for kryptisk?
Avatar billede viper_killerguy Nybegynder
06. december 2006 - 10:43 #1
Der er 3 måder hvorpå 1 interval kan overlappe et andet
(1) fuldt overlap, det nye interval overlapper et helt andet interval.
(2) starten er i et interval.
(3) slutningen er i et interval.

så (hvor s er starten af intervallet du checker med og e er slutningen på intervallet du checker med, i rækkefølgen (1), (2), (3):
WHERE ( (s < start AND e > slut) OR
        (s > start AND s < slut) OR
        (e < slut AND e > start) )

denne where finder alle de rækker hvor intervallet overlapper på det testede interval (s -> e).
Avatar billede mads1987 Nybegynder
06. december 2006 - 15:23 #2
Perfekt, logisk tænkning var hvad der skulle til. Super løsning.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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