01. november 2002 - 12:44Der er
17 kommentarer og 1 løsning
udvælgelse i sql - nyere end i dag
okey, jeg har følgende i et script:
strDate = now() sql = "SELECT * FROM t_calendar WHERE c_date >= #" & strDate & "# ORDER BY c_date ASC"
idéen er, jeg vil udvælge alle de poster, hvor datoen er = med idag eller ligger i fremtiden.
det virker også - nogle gange! andre gange viser den slet ikke noget, selvom der er poster, der matcher kriteriet. andre gange igen vælger den alle poster, selvom de måske er 2-3 måneder gamle.
HVAD SKER DER?!?!
er der nogen, der har en work-around, der kan løse ovenstående problematik ?
Hvilket datoformat bruges der i databasen og er det en Access database? Jeg har erfaring med at alt man rører ved der har med datoer at gøre skal ligge i engelsk format i databasen ellers går der ofte kludder i det. Så hvis du bruger dansk format, vil jeg anbefale dig at ændre til engelsk og konvertere til dansk når du skal trække det ud på siden.
skal jeg tvinge et us-format ind i databasen? den står til 'standardformat' i db'en (access), og jeg indsætter så efter standardformatets foreskrifter : dd-mm-yy hh:mm:ss
hmm. hvis jeg i min tabel i access forsøger at ændre fx. 26-10-02 21:00:00 til 10-26-02, så ændrer den det selv tilbage.... (dansk access)
min indsættelse i scriptet sker således: rs("c_date") = cint(request.form("day")) & "-" & cint(request.form("month")) & "-" & cint(request.form("year")) & " " & cint(request.form("hour")) & ":" & cint(request.form("minute"))
(den henter værdierne fra en inputformular)
argh! pis og lort, for jeg tror faktisk du har ret - det med, at det helst skal ligge i us-format. men det er så bare noget pis, når jeg ikke kan få lov til det på db-niveau. jeg kan godt ændre min indsættelse ovenfor, men mon ikke, den så bare tager dag som måned og omvendt ??
hmm. en lille teori. kunne man tænke sig, at man ikke behøver den slags specificering, når man kommer over d. 12. i en måned. der giver det sig selv, da kun ét tal, kan være dagen... altså en slags 'indbygget' formatering.
men når datoen, som idag, hedder noget med to tal under 12, så er der behov for specifik adressering... ja, jeg ved det ikke, men det passer meget godt med mit problem. så vidt jeg umiddelbart kan huske, så passer det med forekomsten af problemer.
rosted: sorry, jeg kan ikke lige tildele dig point. håber du overlever. (!)
i hvert fald skal de varmeste weekendhilsner lyde her fra kbh. s.
jeg har prøvet med bare at indsætte now(), men det var heller ingen succes... din idé tror jeg på, med udgangspunkt i min smukke 'teori' beskrevet ovenfor.
Jeg har erfaring for at Access håndterer datoer lige lovlig overbegavet. Er datoen gyldig i US format opfattes den som sådan, altså 05-08-02 opfattes som 8. maj 2002. Er datoen ikke gyldig i US format kunne det jo være at den var gyldig i europæisk format (tænker Access) så 13-08-02 vil blive opfattet som 13. august 2002. Meget underholdende! Jeg har lavede en gang en workaround ved at anføre mellemlangt datoformat, det virker godt nok, men man skal huske at Access vil have engels i SQL sætninger, så du skal lige oversætte maj og oktober til may og oct. Det da meget simpelt ikk´!
Synes godt om
Ny brugerNybegynder
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.