Dateadd lægger bare det antal timer (når du bruger hour) til den dato du smider funktionen og between er en rimelig standard "range"-sammenligning, så den burde fungere. Jeg ville som sagt nok lige kigge en ekstra gang på mine data... :)
Har du en Query Analyzer, hvor du kan udføre SQL-scripts mod din database?
Så kan du evt. prøve at køre flg. og kontrollere om det er de rigtige datoer der kommer ud af det:
/* skulle gerne returnere datoen igår på nøjagtig samme tid som nu */ SELECT dateadd(hour, -24, getdate())
/* vælg data med en manuel indtastet dato */ /* det er muligvis nødvendigt at bytte dato og måned i de to datoer alt efter hvilket sprog der benyttes på serveren */ SELECT * FROM tabel WHERE datofra BETWEEN '2008-02-28 12:00:00' AND '2008-02-29 12:00:00'
Hvis den sidste giver de korrekte data, og den første giver den korrekte dato, så vil da mene at der er noget galt, hvis du ikke får de data du forventer...
Nu har jeg prøvet den med between og der får jeg også kun record fra idag, - og der er altså records fra den 28 også - f.eks når jeg bare laver seléct * from så kommer alt og der er data fra en 27.
OK, så kan jeg ikke lige gennemskue hvad der skulle gå galt. datofra er vel et datofelt (ikke fordi jeg lige kan se hvad der skulle gå galt hvis det ikke var)?
Er datofra af typen datetime i databasen? Eller har du specificeret datofra (som en varchar) der indeholder datoen og nyt felt som hedder tidspunkt (af typen varchar) der indeholder tidspunktet...?
Hvorfor er tidspunkt adskilt fra datofra og datotil? Et felt af typen datetime indeholder også tidspunkt... det lyder som en besværliggørelse af datahåndteringen at adskille dato og tid i to forskellige felter.
Det er fordi datetime er en maskintid ik? og tidspunkt er det klokkeslet hvor teksten der også er en del af opdatering bliver modtaget, så datofra som datetime inklusiv tid kan ikke altid bruges
men selvfølgelig kunne man vel godt sætte tiden med i datofeltet og så bare ved visning formattere dato til kun at vise dato og så ville man vel kunne gøre det jeg gerne vil, nemlig at hente alt fra en dato fra kl. 0001 til 2359 filtreret på datetime?
så er det bare lige hvordan jeg får indsat datetime automatisk p.t. bruger jeg dette: altså 2 indputfleter med en value="<%=(date)%>" for fradato og tildato value="<%=(date)+1%>"?
som du tidligere har sagt, - har jeg nu lavet datofeltet om, så det indeholder tiden også, - altså f.eks '2008-02-28 12:00:00', men jeg er ikke kommet så langt, at jeg igen har forsøgt med den sqlsætning du ga mig
where datofra between dateadd(hour, -24, getdate()) and getdate(), men jeg har løst det hele på en anden måde, da udtrækket af databasen nu kun skal indeholde fra en dato og ikke flere, men læg et svar og tak for hjælpen
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.