SQL Between Datum
ify
- datenbank
0 Vinzenz Mai
Hallo
Ich versuche eine Datenbankabfrage mit Datum zu machen, leider funktioniert es nicht, ich nehme mal an es liegt irgendwo am Datentyp...
SQLQuery = "SELECT * FROM Kurse WHERE (MinvonKursDat BETWEEN '01.01.1990' AND '31.12.2020')"
Dies erzeugt mir den Fehler
SELECT * FROM Kurse WHERE (MinvonKursDat BETWEEN '01.01.1990' AND '31.12.2020')
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
Die AccessDatenbank ist auf Deutsch und in Datum/Uhrzeit eingestellt.
Kann mir jemand helfen?
Das Endziel wäre dass das Datum aus einem Textfeld in eine Variable ausgelesen wird.
Datumvon = Request.QueryString("txtDatumvon")
Datumbis = Request.QueryString("txtDatumbis")
Hallo,
Ich versuche eine Datenbankabfrage mit Datum zu machen, leider funktioniert es nicht, ich nehme mal an es liegt irgendwo am Datentyp...
SQLQuery = "SELECT * FROM Kurse WHERE (MinvonKursDat BETWEEN '01.01.1990' AND '31.12.2020')"
Dies erzeugt mir den Fehler
SELECT * FROM Kurse WHERE (MinvonKursDat BETWEEN '01.01.1990' AND '31.12.2020')
Jet-SQL erwartet Datumsangaben im Format #Monat/Tag/Jahr#, z.B. für Deinen zweiten Wert #12/31/2020#. Jet-SQL mag keine einfachen Anführungszeichen um Datumsangaben, wenn ich mich recht erinnere.
Falls ASP, ASP.NET oder was immer Du verwendest keine entsprechende Konvertierungsfunktion haben sollte, dann schreibe Dir diese am besten selbst.
Freundliche Grüße
Vinzenz
yo,
ich kenne mich mit der JET-Engine nicht wikrlich gut aus, aber bei Datumsangaben in verbindung mit BETWEEN wäre ich immer vorsichtig, ob da nicht auch im Datentyp die Zeit mit drinne ist. du willst sicherlich den ganzen tag vom 31.12.2020 und nicht nur die um 00:00:00 Uhr.
Ilja
Hallo Ilja,
ich kenne mich mit der JET-Engine nicht wikrlich gut aus, aber bei Datumsangaben in verbindung mit BETWEEN wäre ich immer vorsichtig, ob da nicht auch im Datentyp die Zeit mit drinne ist. du willst sicherlich den ganzen tag vom 31.12.2020 und nicht nur die um 00:00:00 Uhr.
ein guter Hinweis, den der Fragesteller berücksichtigen sollte.
Freundliche Grüße
Vinzenz
Danke schon mal für die Antwort.. es muss wirklich irgendwo am datentyp liegen..
Mit dem Aufrug
SQLQuery = "SELECT * FROM Kurse WHERE(((Kurse.[MinvonKursDat])BETWEEN #6/6/2008# AND #6/6/2008#))"
Gibt er mir schön brav alle objekte am 6.6 aus...
Sobald ich es aber mit einer variable Versuche die 6/6/2008 heisst geht wiederum gar nichts mehr...
Hallo,
Mit dem Aufrug
SQLQuery = "SELECT * FROM Kurse WHERE(((Kurse.[MinvonKursDat])BETWEEN #6/6/2008# AND #6/6/2008#))"
>
> Gibt er mir schön brav alle objekte am 6.6 aus...
> Sobald ich es aber mit einer variable Versuche die 6/6/2008 heisst geht wiederum gar nichts mehr...
Das #-Zeichen gehört zur Datunsangabe zwingend dazu. Du kannst es nicht weglassen.
Freundliche Grüße
Vinzenz