ify: SQL Between Datum

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")  

  1. 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

    1. 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

      1. 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

    2. 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...

      1. 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