Abfrage nach Zeit UND Wochentag



  • Hallo,

    ich habe ein Problem, ich muss Daten Filtern von - bis Datum!

    Allerdings soll er mir nur Sätze anzeigen, die auf einen Wochentag fallen (also kein Wochenende)

    Gibt es da eine möglichkeit?

    Select bisher:
    Code:

    SELECT *
    FROM tabMesswert
    WHERE DateValue([mw_Zeit]) BETWEEN #1/1/2007# AND #1/3/2007#
    AND Format([mw_Zeit],"hh:nn:ss") >= #20:0:0#
    OR Format([mw_Zeit],"hh:nn:ss") <= #8:0:0#
    ORDER BY mw_Zeit

    in wirklichkeit werden die datumsinformationen aus einem DateTimePicker geholt, aber ich kann ja vorher nicht abfragen mit DayOfWeek, da ich es ja nicht in den select einbauen kann!

    Meine frage: gibt es da einen DQL Befehl ähnlich DayOfWeek, oder kann ich im nachhinein die Daten im Query bearbeiten (wo eben alle Tage drinstehen)?



  • Hi,

    Wen es die Wochentagsspalte in der DB nicht gibt, kannst du sie erst im nachhinein filtern.

    Außer du sammelst dir alle Datumsangaben die nicht aufs Wochenende fallen in einer z.B. StringList und vergleichst dann:

    SELECT *
    FROM tabMesswert
    WHERE DateValue([mw_Zeit]) BETWEEN #1/1/2007# AND #1/3/2007#
    AND (Format([mw_Zeit],"hh:nn:ss") >= #20:0:0#
    OR Format([mw_Zeit],"hh:nn:ss") <= #8:0:0#)
    AND DateValue([mw_Zeit]) == "Dein Datum aus der StringList"
    ORDER BY mw_Zeit

    Da könntest du dir ne Schleife -die jeden Eintrag aus der Stringlist einmal dort einsetzt - "drumrumbauen"

    Oder halt das ganze (damit es schneller geht) negiert:

    SELECT *
    FROM tabMesswert
    WHERE DateValue([mw_Zeit]) BETWEEN #1/1/2007# AND #1/3/2007#
    AND (Format([mw_Zeit],"hh:nn:ss") >= #20:0:0#
    OR Format([mw_Zeit],"hh:nn:ss") <= #8:0:0#)
    AND DateValue([mw_Zeit]) != "Dein Datum aus der StringList" //ungleich = "!="??
    ORDER BY mw_Zeit

    Hierbei müssen die Datumsangaben in der StringList allerdings die von den Wochenenden sein. Da dann auch wieder ne Schleife drumrum.

    mfg, Micha



  • unter mysql gibt es sowas:

    select WEEKDAY('2001-02-01') as tag



  • @Random:aber der select muss ja in ein Query, wenn ich jetzt immer verschiedene sachen in den select reinschriebe, muss ich ihn ja immerwieder neu ausführen, und dabei gehen mir doch die alten daten im DBGrid verloren, oder?



  • Ja, stimmt, sorry das hab ich nicht bedacht!



  • Das Query muß doch nicht mit einem Grid verknüpft sein. Pack dir ein zweites Query auf deine Form, das nur mit der Datenbank verbunden ist und nutze das.


Anmelden zum Antworten