Michael Vilhelmsen wrote:
> Jeg har lavet et lille SQL Statement, som følger:
>
> Select * from TABLE where DateField between '1980-01-01' and '2002-04-01';
>
> Når jeg bruger dette, får jeg ingen records.
>
> Men gør jeg istedet dette:
>
> Select * from TABLE where DateField between '1980-01-01 00:00:00' and
> '2002-04-01 23:59:59';
Får du også de rigtige poster ud?
> Får jeg mange poster.
>
> Hvorfor ?
Det har formentligt noget at gøre med hvordan din database gemmer
datoen. F.eks. hvis du vælger at et felt skal være et dato-felt i
Access, vil den automatisk stemple den med dato og tid. Ved kun at
tilføje datoen uden tidsstempling, vil der ikke blive returneret nogle
poster fra din SQL, da databasen sammenligner også med tiden, da den
formentlig gemmer datoen (og tiden) som en formateret streng.
En anden måde at løse det på at det oprette et felt til år, måned, dag
evt. time, minutter og sekunder, hvis man ønsker tidsstempling, og så
vælge de specifikke poster ud i SQL'en.
--
Med venlig hilsen,
René Jensen
Once a upon a time a wise man said to me:
"I consider Windows like I consider bad weather ... I accept it and hope
for something better"
|