BDE->Access->SQL-Syntax-Problem
-
Hallo Fans!
ich Versuche gerade mit der BDE über ein Alias auf eine AccessDB zuzugreifen. Mein SQL-String sieht folgendermaßen aus:
SELECT Datum, M419M030 FROM 1 WHERE Datum >= '14.03.2005' AND Datum <= '14.04.2005'Irgendwie stimmen die Angaben für das Suchdatum nicht. Es kommt eine entsprechende ODBC-Fehlermeldung zurück.
Was mach ich falsch?
-
Hallo
sicher stimmt das Datumsformat nicht, weil die Datenbank ein anderes Format erwartet. Probier mal statt '14.03.2005' dieses Format '2005-03-14'.
So wird das Datum jedenfalls in MySQL verarbeitet.
Die Umwandlung kannst du einfach mit FormatDateTime(...) machen.bis bald
akari
-
Am einfachsten ist es eine parametriesierte Abfrage zu verwenden:
SELECT ... WHERE datum >= :pvondatum AND datum <= pbisdatum;Und im Source dann
Query->ParamByName("Parametername")->AsDateTime = TDateTime(...);Dann brauchst Du Dir über das erwartet Format keine Gedanken mehr zu machen.
EDIT: Ich weiß nicht ob das auch für Access gilt, aber bei Paradox über die BDE ist das Format "MM/TT/JJJJ".
-
Jo. ich hatte es dann auf den Tipp hin mal im Format 'yyyy-mm-dd' probiert. Das hat auch nicht hingehauen. In einem VB-Forum habe ich dann gelesen, dass die die Datumswerte immer in # einschließen.
Wozu gibt es eigentlich SQL92?Nichtsdestotrotz, der SQL String muss also so aussehen:
SELECT Datum, M419M030 FROM 1 WHERE Datum >= #2005-03-14# AND Datum <= #2005-04-14#vollständig mit Uhrzeit sieht das ganze dann so aus:
SELECT Datum, M419M030 FROM 1 WHERE Datum >= #2005-03-14 00.00.00# AND Datum <= #2005-04-14 23.59.59#Ich danke Euch beiden für die Hinweise!