Avatar billede mailand Nybegynder
01. november 2002 - 12:44 Der 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 ?

#Mailand
Avatar billede mailand Nybegynder
01. november 2002 - 12:45 #1
hmmm. forkert kategori...
Avatar billede pfp Nybegynder
01. november 2002 - 12:46 #2
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.

/peter
Avatar billede pfp Nybegynder
01. november 2002 - 12:49 #3
Virkede det?
Avatar billede mailand Nybegynder
01. november 2002 - 12:52 #4
hmm. jeg var måske lidt hurtig med de point...

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
Avatar billede pfp Nybegynder
01. november 2002 - 13:24 #5
Ja så skal du tvinge den. dd-mm-yy er dansk format. Den US/EN godkendte format er mm-dd-yy

Hvis ikke det virker får du lige dine point tilbage.
Avatar billede mailand Nybegynder
01. november 2002 - 13:32 #6
årh skidt med point. hmm. men kan man bare tvinge datoen ind i det format, når access ikke selv foreslår det ?
Avatar billede rosted Nybegynder
01. november 2002 - 13:40 #7
"#" & Month(dato) & "/" & day(dato) & "/" & Year(dato) & "#"
Avatar billede mailand Nybegynder
01. november 2002 - 13:43 #8
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 ??

pis!

#Mailand
Avatar billede mailand Nybegynder
01. november 2002 - 13:43 #9
rosted: cool idé!
prøver lige
Avatar billede mailand Nybegynder
01. november 2002 - 13:48 #10
rosted: jeg kunne kysse dig! :-*

strDate = now()
sql = "SELECT * FROM t_calendar WHERE c_date >= #" & month(strDate) & "-" & day(strDate) & "-" & year(strDate) & "# ORDER BY c_date ASC"

ovenstående konstruktion spiller max!

se på www.campsite.st under 'live'.

#Mailand
Avatar billede rosted Nybegynder
01. november 2002 - 13:53 #11
Takker. Men det med kys kan jeg nok godt undvære :)

Hvordan virker det hvis du bare skriver

sql = "SELECT * FROM t_calendar WHERE c_date >= now() ORDER BY c_date ASC"

?
Avatar billede mailand Nybegynder
01. november 2002 - 13:53 #12
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.

#Mailand
Avatar billede pfp Nybegynder
01. november 2002 - 13:54 #13
Jeg opretter lige et spm. så rosted kan få pointene istedet for.
Avatar billede mailand Nybegynder
01. november 2002 - 13:54 #14
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.
Avatar billede rosted Nybegynder
01. november 2002 - 13:56 #15
Din teori er i øvrigt helt korrekt. Formatet er forresten ikke afhængig af versionen af Access men af dine regional settings.
Avatar billede pfp Nybegynder
01. november 2002 - 13:58 #16
Rosted -> Du kan hente dine points her:
http://www.eksperten.dk/spm/278053

/peter
Avatar billede rosted Nybegynder
01. november 2002 - 13:58 #17
Tak skal du ha'
Avatar billede carlhoegstedt Nybegynder
01. november 2002 - 20:45 #18
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´!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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