Hallo zusammen,
suche überall, komme aber gerade nicht weiter...
In einer SQL-Abfrage übergebe ich als Parameter eine Variable "Zeitraum" mit einem Datum im Format yyyy.mm, also z.B. "2019.05".
Das gesuchte Datum liegt in der Tabelle in der Darstellung "01.05.2019" vor.
Wie muss ich das Datum aus der Tabelle formatieren, damit dieses zum Vergleichen auch als yyyy.mm vorliegt?
Habe es so probiert:
WHERE ((Format$([Freigabedatum],'yyyy.mm'))=" & Zeitraum & ")
Funktioniert nicht, bekomme kein Ergebnis.
Wie muss ich das Datum (Freigabedatum) oder den Parameter (Zeitraum) formatieren, damit ein Vergleich möglich ist?
Grüße, Joe
Deine Variable ist kein Datum (vom Datentyp her), sondern Text. Texte müssen an dieser Stelle mit zusätzlichen Quotes/Doublequotes versehen werden.
Wenn Du aber vernünftig arbeiten willst: Die Formatierungsfunktion auf das Tabellenfeld bricht eine mögliche Indexnutzung und verhindert evtl. dringend benötigte Performance. Daher sollte stattdessen der Parameter von außen in ein richtiges Datum überführt werden, um auf ein Kriterium wie folgt zu kommen:
WHERE Freigabedatum = Zeitraum
' oder (um dem Begriff Zeitraum einen Sinn zu geben)
WHERE Freigabedatum BETWEEN Zeitraumbeginn AND Zeitraumende
Auch hier müssen von außen kommende Variablen SQL-gerecht formatiert werden: Datum an SQL-String übergeben (http://www.donkarl.com?FAQ6.8)
Oder aber Du beschäftigst Dich mit richtigen Parameterabfragen.
Hallo Eberhard,
herzlichen Dank für die schnelle und kompetente Unterstützung!
Meine Abfragen laufen jetzt so wie gewünscht :D
Die Seiten von Karl Donaubauer Datum an SQL-String übergeben (http://www.donkarl.com?FAQ6.8) sind klasse, Link ist gespeichert ;)
Danke und Gruß, Joachim