Jeps de er i formatet eks. 04-01-2008 13:33:00 og jeg har forsøgt at ændre det i tabellen til at være en smalldate, men det er tilsyneladende ikke nok.
Men hvordan kan jeg typecaste datoen til kun at være en dato i forespørgslen?
Kan du ikke i forespørgslen lave et udtryk, der konverterer dit lange dato- og Klformat til kun af have dd-mm-yyyy, og så køre din between på dette udtryk.
Synes godt om
Slettet bruger
06. marts 2008 - 07:37#11
Jeg vil mene at du ikke skal bruge date i din forespørgsel med mindre du har brug for dagsdato, det er jo et reserveret ord....
Hvis du har en fra og en til dato i langt dato format, så vil til datoen jo have tidspunktet 00:00:00 så derfor vil denne dag ikke medtages...
Når du nu har lavet tabelstrukturen om til kort datoformat, så burde det virke, du skal også lige have [Fra dato] og [Til dato] i kort format. Der er jo også notationen format([Dit felt];"short date") som du kan arbejde med...
Så lav ordet Date om og få [Dato], [Fra dato] og [Til dato] til at være kort datoformat...
For god ordens skyld, så tager Between både start og slutdato med!~)
Synes godt om
Slettet bruger
06. marts 2008 - 07:44#12
"Hvis du har en fra og en til dato i langt dato format, så vil til datoen jo have tidspunktet 00:00:00 så derfor vil denne dag ikke medtages..."
Dvs. Between 01-02-2007 00:00:00 And 29-02-2007 00:00:00
So I also need to put a time in the criteria SELECT tblDateOnly.DateOnly FROM tblDateOnly WHERE (((tblDateOnly.DateOnly) Between #3/6/2008 00:00:00# And #6/3/2008 23:59:59#));
Which now returns all records DateOnly 06-03-2008 13:00:00 03-06-2008 23:59:58 28-03-2008 00:00:01
So if you dont have a time in the date field you dont need a time in the crtiteria. If you have at time in the date field you also need a time in the criteria.
SELECT DateSerial(Year([dato]),Month([dato]),Day([dato])) AS RenDato, tblDato.Beløb FROM tblDato WHERE (((DateSerial(Year([dato]),Month([dato]),Day([dato]))) Between CDate([Fra dato]) And CDate([Til dato])));
Kunne en årsag ikke være at den 29-02-2007 ikke er en gyldig dato? I 2007 var sidste dag i 2. måned mig bekendt den 28. og Access er berømt for at lave sjove ting med ugyldige datoer.
And I dont even think Access would accept this date so I'm very puzzled as to what verakso says. "at de tre poster der er d. 29-02-2007 kommer ikke med."
Okay, tak for de fine svar, jeg er blot så langt bagefter, at jeg ikke har fattet at vi er nået til 2008.
Jeg mener selvfølgelig 29-02-2008.
Det er også korrekt, at jeg "fejlagtigt" ikke troede at begge datoer kom med i Between, men det er jo fordi at de værdier jeg søger på er en DateTime altså dd-mm-åååå tt:mm:ss
Jeg må lige kigge nærmere de forslag der er kommet, men det undrer mig at stadigt Between kun tager til dd-mm-åååå 00:00:00 og ikke til dd-mm-åååå 23:59:59
Mand! Livet er bare for kort til dårligt database design, og jeg er lidt træt af at skulle sidde og rode bod på andres dårlige planlægning.
Hvordan man i alverden kan finde på at lave en tabel for et langt datofelt ligger som tekst fatter jeg ikke, men..
Jeg har fået noget nogenlunde brugbart flikket sammen ved hjælp af Kabbak's eksempel:
SELECT DateSerial(Year([dato]),Month([dato]),Day([dato])) AS RenDato, tblDato.Beløb FROM tblDato WHERE (((DateSerial(Year([dato]),Month([dato]),Day([dato]))) Between CDate([Fra dato]) And CDate([Til dato])));
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.