Datum aus einer Access-DB holen



  • Hallo,

    wie kann ich aus einer Access-DB nur Sets holen die in einem bestimmten
    Zeitfenster erstellt worden sind?

    Mit

    myDB.m_strFilter="Datum BETWEEN '11.11.2004' AND '15.11.2004'";
    

    funktioniert es nicht. Auch nicht mit vergleichsoperatoren < > =. Nur mit LIKE
    mäckert er nicht. Sonnst bekomme ich die Fehlermeldung dass der Datentyp falsch ist. In der DB ist der Wert vom Typ Datum.

    Wie kann ich das Problem lösen. Es geht um eine Statistikabfrage nach dem Datum!

    Danke! 🙂



  • Versuch mal bitte das Datum mit #Datum# einzubinden, also #11.11.2004#.
    Maybe funktionierts 😉



  • Falls Access so ähnlich wie MS-SQL funktioniert, musst du noch die Uhrzeit angeben und das alles im Format 'YYYY-MM-DD HH🇲🇲ss'

    myDB.m_strFilter="Datum BETWEEN '2004-11-11 0:00:00' AND '2004-11-15 23:59:59'";
    

    🙂



  • estartu_de schrieb:

    Falls Access so ähnlich wie MS-SQL funktioniert, musst du noch die Uhrzeit angeben und das alles im Format 'YYYY-MM-DD HH🇲🇲ss'

    myDB.m_strFilter="Datum BETWEEN '2004-11-11 0:00:00' AND '2004-11-15 23:59:59'";
    

    🙂

    Nur bedingt, je nach Typ der verwendet wird! aber wahrscheinlich schon. ESTARTUs YYY-MM-DD etc musst du an deine Datumsformatierung anpassen! bei mir ist es DD.MM.YYYY
    Wenn du die Uhrzeit bei hast sollte auch <= und so gehen!



  • Hi ich bins nochmal.

    Ich habe verschiedene Varianten mit dem Format versucht aber es funktioniert nicht. Nur mit LIKE funktioniert es.
    Es kommt immer die Fehlermeldung "Datentypen in Kriterienausdruck unverrträglich"
    In Access ist der Datentyp "Datum/Uhrzeit" im Format "Datum,kurz".
    Es wird auch in der DB im Format "dd.mm.yyyy" gespeichert.
    In meiner Klasse CMyDB ist der Datentyp vom CTime.
    Mit

    myDB.m_strFilter="Datum BETWEEN '12.03.05' AND '15.03.20005'";
    

    bekomme ich die o.g. FM.

    Hat jemand noch einen TIP!
    🙂



  • Nach meiner Erfahrung kannst du entweder die lokale Einstellung der DB (schlecht), oder ein etwas komisches Standardformat verwenden - das sieht so ähnlich aus wie #11.11.2004#, aber ich bin mir nicht sicher ob genau so (steht irgendwo gut versteckt in der MSDN oder Access-Hilfe, hat mich damals fast nen Tag gekostet)



  • ah....

    SELECT *
    FROM Orders
    WHERE ShippedDate = #5/10/96#;
    

    Wenns gar nicht geht muß ich am Dienstag in unserem Intranet nachgucken... 🕶



  • Ich kenn mich zwar nicht sehr gut in SQL aus, aber LIKE benutzt man immer dann wenn man einen Wert sucht der ungefähr so ist wie z.b.

    SELECT * FROM tab1 WHERE col LIKE "A*" <- Sucht nach alles was mit A anfängt
    SELECT * FROM tab1 WHERE col = "A" <- Sucht nur nach A

    Daher für dein Prob, musst du LIKE bnutzen und das was peterchen hat, müsste so stimmen. Demnach -> '15.03.20005' <- ist nicht korrekt.

    Ich probier das aber mal heute Abend selber bei mir aus, vielleicht kann ich dir das dann genauer sagen. 🙂

    So far, Zanerva



  • Hallo peterchen,

    vielen Dank hat geklappt. Es lage an dem Format.
    Statt 12/12/2002 habe ich 12.12.2002 benutzt.

    Danke nochmal 🙂


Anmelden zum Antworten