Avatar billede madssch Nybegynder
21. februar 2006 - 10:49 Der er 5 kommentarer og
1 løsning

Check i kalender

Hej Eksperter!

Jeg har en kalenderfunktion, hvor det er muligt at oprette aftaler. Ved oprettelse skal systemet checke, om personen er optaget i det valgte tidsrum.

Jeg har tidligere brugt en smart sql-forespørgsel til at tjekke dette, men kan ikke finde den længere. Noget med DateDiff osv...

I check-funktionen har jeg følgende at arbejde med:

- Valgt startdato + tid (dd-mm-yyyy hh:mm) - sendt fra form
- Valgt slutdato + tid (dd-mm-yyyy hh:mm) - sendt fra form
- Eksisterende startdato + tid (dd-mm-yyyy hh:mm:ss) - i DB
- Eksisterende slutdato + tid (dd-mm-yyyy hh:mm:ss) - i DB

Kan nogen hjælpe med dette? Det kan godt lade sig gøre med en god håndfuld And og Or's, men jeg ved, at der findes en smartere måde...

På forhånd tak!
Avatar billede nalu Nybegynder
21. februar 2006 - 15:25 #1
Er ik sikker på jeg forstår spørgsmålet, men kan du ik bare lave en løkke som siger den skal gå fra starttid til sluttid?
Avatar billede nalu Nybegynder
21. februar 2006 - 15:29 #2
Ellers hedder den DateDiff("d,w h",datofra,datotil)
Avatar billede madssch Nybegynder
21. februar 2006 - 15:39 #3
Prøver lige at omformulere:

Når en person opretter en aftale angives der startdato, starttid, slutdato og sluttid.

Inden oprettelsen kan accepteres, skal der tjekkes for, om man allerede har en aftale i det angivne tidsrum - altså om de angivne tidspunkter overlapper en eksisterende aftale.

Jeg kender udmærket DateDiff funktionen, men de valgte tidspunkter kan jo overlappe en eksisterende aftale på mange måder. Det er her der findes en smart måde at tjekke på ved hjælp af DateDiff i sin SQL.

Gav det mere mening?
Avatar billede nalu Nybegynder
21. februar 2006 - 15:47 #4
Ja, jamen så laver du jo bare en løkke som siger den skal gå fra dato1 til dato og hvis der er noget imellem, lave en fejlmeddelelse
Avatar billede madssch Nybegynder
21. februar 2006 - 15:58 #5
Det er selvfølgelig en mulighed, men ikke helt den jeg var ude efter.

Da man kan vælge flere deltagere til sin aftale, kan det godt blive en del løkker og dermed en meget stor belastning for databasen.

Jeg mener absolut at kunne huske, at det kan gøres på ikke mindre end én sql-linje..?
Avatar billede madssch Nybegynder
24. februar 2006 - 10:03 #6
Har selv fundet ud af det.

Lukket.
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
Kurser inden for grundlæggende programmering

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