19. august 2006 - 20:22Der er
4 kommentarer og 1 løsning
Søge i database vha. datoer
Hej allesammen...Håber i kan hjælpe mig med et lille problem.
Lige nu har jeg en database der holder styr på en masse medarbejdere og hvilke projekter de er tilknyttet til. Desuden holder databasen styr på i hvilke tidsperioder som en person er tilknyttet databasen i (med en start og en slutdato).
Mit spørgsmål lyder på hvordan jeg kan søge efter om en person er ledig til at udføre en bestemt type opgave. Jeg definerer ledighed som når en person slet ikke er tilmeldt noget i den tidsperiode man angiver.
selve den query'en/metode som jeg har brug for skal virke således:
ledighed(1.marts,5.marts)
Hvis personen er ledig mellem 1. marts og 5. marts så returneres true, ellers false. Personen er ledig hvis denne ikke har nogen tilmeldinger i perioden mellem 1.marts og 5.marts.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
if exists (SELECT * FROM tabel where slutdatofelt > CONVERT(DateTime, '07-19-2006 11:00:00', 105) AND slutdatofelt < CONVERT(DateTime, '07-19-2006 12:00:00', 105)) BEGIN --ikke ledig return 0 END ELSE BEGIN --ledig return 1 END
noget med if ((SELECT count(*) FROM tabel where slutdatofelt > CONVERT(DateTime, '07-19-2006 11:00:00', 105) AND slutdatofelt < CONVERT(DateTime, '07-19-2006 12:00:00', 105)>2 )
Men du skal nok lave nogle ekstra checks. både at startdate<enddate og der skal formodentlig også laves noget tjek på startdatoen og nogle andre ting. Men der er noget du bedst selv kan teste.
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.