Avatar billede crunch Nybegynder
04. september 2003 - 10:59 Der er 4 kommentarer og
1 løsning

dato sammenligning virker ikke med MySQL

Hej,

Jeg har lige konverteret til en MySQL database. Indtil nu har jeg brugt sætninger som:

strSQL = "SELECT * FROM tblMdlnewsletterUser WHERE " + intTblPageContentModule + ") AND  (dtmModified >= #" + dtmModified1 + "#) AND (dtmModified <= #" + dtmModified2 + "#) AND (strEmail LIKE '%" & strSearch & "%') ORDER BY Id DESC;"

- og det virkede fint. Hvis man udskriver det får man:

SELECT * FROM tblMdlnewsletterUser WHERE ) AND (dtmModified >= #2002-9-4#) AND (dtmModified <= #2003-9-4#) AND (strEmail LIKE '%@%') ORDER BY Id DESC;

Men hvis jeg kører den op mod min MySQL database får jeg en fejl omkring dato forspørgslen, altså:

(dtmModified >= #" + dtmModified1 + "#)

- er ikke en korrekt angivelse med MySQL
Jeg har prøvet med et utal af % + & " ' - mit spørgsmål er derfor:

- hvordan skriver man en datosammenligning korrekt med MySQL?
Avatar billede clausjul Nybegynder
04. september 2003 - 11:02 #1
Har du prøvet med nedenstående:

strSQL = "SELECT * FROM tblMdlnewsletterUser WHERE " + intTblPageContentModule + ") AND  (dtmModified >= '" + dtmModified1 + "') AND (dtmModified <= '" + dtmModified2 + "') AND (strEmail LIKE '%" & strSearch & "%') ORDER BY Id DESC;"
Avatar billede crunch Nybegynder
04. september 2003 - 11:02 #2
Ups. har lige skrevet lidt forkert i ovenstående. Men altså fejlen ligger omkrig dato, og den bliver fejlmeldt som:

ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-4.0.14-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND (dtmModified >= #2003-9-4#) AND (dtmModified <= #2003-9-
Avatar billede crunch Nybegynder
04. september 2003 - 11:04 #3
Giver stadig fejl omkring dato:
ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-4.0.14-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND (dtmModified >= '2003-9-4') AND (dtmModified <= '2003-9-
Avatar billede clausjul Nybegynder
04. september 2003 - 11:28 #4
Har du prøvet denne:

strSQL = "SELECT * FROM tblMdlnewsletterUser WHERE " + intTblPageContentModule + " AND  (dtmModified >= '" + dtmModified1 + "') AND (dtmModified <= '" + dtmModified2 + "') AND (strEmail LIKE '%" & strSearch & "%') ORDER BY Id DESC;"
Avatar billede crunch Nybegynder
04. september 2003 - 14:38 #5
ja.. har fundet fejlen nu.
det var fordi at der manglede 0 er i datoen, altså 2003-09-04 virker.. tænkte ikke lige på det. Men altså:

If (Len(dtmMonth) = 1) Then dtmMonth = ("0" & dtmMonth)

retter dette problem. Men tak for jeres forsøg.!
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