Avatar billede hundevennen Nybegynder
01. november 2007 - 07:30 Der er 12 kommentarer og
1 løsning

SQLsætning med datoFra og datoTIl

Jeg kører en eventdatabase og skal med en aspside trække nogle datoer ud.
Databasen(access) har en kolonne Fradato og en Tildato og datoformat dd-mm-yy.
Jeg vil gerne lave et udtræk fra dagsdato, som jo så skal indeholde dem hvor Fradato er lig med dagsdato, men da nogle af events ikke lige er på en dato men f.eks en hel måned skal jeg altså også udtrække dem der slutter på en dato og have nogle med der erældre en dagsdato?
Avatar billede hundevennen Nybegynder
01. november 2007 - 07:32 #1
f.eks en event der starter idag den 011107 til den 011207 skal vises, men en event der har 011007 til 011207 skal også vises - d.v.s. begge events skal vises hele november måned????
Avatar billede fennec Nybegynder
01. november 2007 - 08:11 #2
select * from dinTabel where Fradato<=#11-30-2007# and Tildato>=#11-01-2007#
Avatar billede fennec Nybegynder
01. november 2007 - 08:12 #3
Altså:
select * from dinTabel where Fradato<=#DinSlutDatoISøgePerioden# and Tildato>=#DinStartDatoISøgePerioden#
Avatar billede hundevennen Nybegynder
01. november 2007 - 08:58 #4
Hej Fennec
jeg kender jo ikke umiddelbart de eksakte datoer - jeg tror det skal være noget med
select * from tabel where tildato < = dagsdato.

Det hele kræver måske en lidt bedre forklaring.
Jeg har en asp kalender, hvor man kan klikke på en dato for så at få et udtræk af en eventkalender.
I den eventkalender finden en masse events med start og slutdatoer, så hvis jeg nu vil se hvilke events der er oppe i tiden f.eks den 011107, så skal jeg jo ha dem der løber fra tidligere datoer og frem til evt. dagsdato eller længere, samt dem der starter dagsdato, - ik?
Avatar billede fennec Nybegynder
01. november 2007 - 13:04 #5
Så du vil atlså finde alle events som er på en given dato. Det kan så være en event som startede for 3 dage siden og løber 5 dage??

Det gøres så sådan (med en "omvendt" between)
dinDato = date()
sql = "select * from dinTabel where #"& DBDate(dinDato) &"# between Fradato and tildato"

ps: Bruger min DbDate funktion som jeg har smidt mange gange her på E. Håber du kender den.
Avatar billede hundevennen Nybegynder
01. november 2007 - 14:49 #6
Hej igen
næh jeg kender ikke din dbdate funktion, men jeg kan da kigge efter den her, -ok
Avatar billede hundevennen Nybegynder
01. november 2007 - 14:51 #7
det er vel denne
function DBDate(fDate)
dim fDag, fMon, fYear
    fDag = right("0"& day(fDate))
    fMon = right("0"& month(fDate))
    fYear = year(fDate)
    DBDate = fYear & fMon fDay
end function
Avatar billede fennec Nybegynder
01. november 2007 - 15:15 #8
Jeps, men da du kører Access skal den være:

DBDate = fMon &"-"& fDay &"-"& fYear
Avatar billede hundevennen Nybegynder
13. november 2007 - 12:48 #9
Hej  Fennec - jeg har nu endelig fået prøvet din function, men får en fejl
"wrong number of arguments or invalid property assignment !"right""??
Avatar billede fennec Nybegynder
13. november 2007 - 13:08 #10
Min fejl. Manglede et ",2"

    fDag = right("0"& day(fDate),2)
    fMon = right("0"& month(fDate),2)
Avatar billede hundevennen Nybegynder
13. november 2007 - 14:44 #11
jeg vil gerne prøve det af, men jeg har lavet en sqlsætning der virker
select * fra tabel where fradato = mindato or fradato < mindato and tildato >= mindato
Avatar billede hundevennen Nybegynder
15. november 2007 - 08:38 #12
Fennec også her tak for hjælpen det virker læg et svar
Avatar billede fennec Nybegynder
15. november 2007 - 08:44 #13
.o) <-- One Eyed Jack
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

IT-JOB