Filter auf Zeitraum, aber inclusive des angegebenen Datum

Hallo zusammen,

ich möchte Aktivitäten mit einer Benutzerabfrage filtern die alle Datensätze ab einem Datum bis incl. einem Datum enthalten.

Leider muss dazu immer ein Tag dazu gezält werden weil der folgende Ausdruck nur die Daten bis incl 06.07.2022 filtert:
“Activities”.“DateTime” < CONVERT(datetime, ‘«AskString$("Dienstleistungen bis incl. Datum ",“07.07.2022”)»’, 104)

Frage: Wie muss der Filterausdruck abgeändert werden, damit er alle Datensätze incl. des angegebenen Datum filtert?
Ich habe schon herrumprobiert mit (AddDay(AskString$,+1) aber hat nicht funktioniert.

Vielen Dank

Hallo Herr Kissling,

meinen Sie so etwas?

"Activities"."DateTime" <= CONVERT(datetime, '«AskString$("«date$(Now()-1,'%x') + ""»","", DateTime)»', 104)

image

Viele Grüße cosmolink

@Frank_Wietzel Ich glaube das Problem ist, dass das eingegebene Datum implizit „00:00“ als Uhrzeit bekommt und damit der Vergleich für alle Treffer dieses Stichtages (aber mit z.B. „9:00“ Uhrzeitanteil) dann nicht „treffen“, weil tt.mm.jjjj 9:00 eben nicht <= tt.mm.jjjj 0:00 ist. Der Filter Allgemein warnt dies auch entsprechend:
image

@Ronald_Kissling Schnelle Lösung:

“Activities”.“DateTime” < DATEADD(d, 1, CONVERT(datetime, ‘«AskString$("Dienstleistungen bis incl. Datum",“07.07.2022”)»’, 104))

(DATEADD addiert 1 Tag zum eingegebenen Wert dazu)

Wenn man es im Filter-Assistent interaktiv zusammenklickt, kümmert* sich der Assistent hinter den Kulissen automatisch darum, wenn bei der Benutzereingabe für den Vergleichswert keine Uhrzeit angegeben wurde. Daher möchte ich an dieser Stelle nochmal Werbung für den Filter-Assistenten machen. :innocent:

*) intern macht der in diesem Fall folgende Abfrage daraus:
CONVERT(date, "Activities"."DateTime") <= CONVERT(date, '09.11.2022 ', 104)
(Es werden also beide Seiten auf date konvertiert, damit der Uhrzeitanteil irrelevant wird - können Sie oben natürlich auch machen.)

Noch eine Frage:
in welcher Dokumentation findet man den Befehl „DateAdd“?

Ich weis: Handbücher lessen ist outdatet :slight_smile:
Aber manchmal hilft es doch.
Kissling

Vielen Dank an die Herren,

hat geklappt.
Mann mus nur auspassen das die richtigen Anführungszeichen verwendet werden:

Der Code ist:
„Activities“.„DateTime“ < DATEADD(d, 1, CONVERT(datetime, ‚«AskString$(„Dienstleistungen bis incl. Datum“,„07.07.2022“)»‘, 104))

Damit klappt es!

Neue Frage:
Was ist der Filterassistent?
Ich benutze immer dne „Filter Allgemein“

Kissling

Das, was bei Filter Allgemein als „Bedingung“ in dem mehrzeiligen Eingabefeld landet, ist letztlich ein SQL-Ausdruck (where-Statement), der dann bei der Ausführung vom Datenbankserver interpretiert wird. (1)

Vorher werden noch die Teile, die in „«“/„»“ eingerahmt sind, durch combit CRM als Formel interpretiert und „aufgelöst“, bevor es dann an den Datenbankserver als Abfrage geschickt wird. (2)

Die Dokumentation für den SQL-Teil (1) - in dem Fall die Datumsfunktionen - finden Sie (für Microsoft SQL Server, den ich Ihnen einfach mal unterstellt habe) hier: Date and Time Data Types and Functions - SQL Server (Transact-SQL) | Microsoft Learn

Die Dokumentation für die combit CRM Formelfunktionen (2) finden Sie, wenn Sie im Formelassistent sind und F1 drücken bzw. auf die Hilfe-Schaltfläche klicken. Oder hier: https://docu.combit.net/crm/11/de/designer/#!Documents/bersichtderfunktionen.htm

https://docu.combit.net/crm/11/de/handbuch/#!Documents/filterassistent.htm :nerd_face:

Hallo Herr Kissling,

in der Version in der Sie arbeiten gibt es keinen Filter Assistenten :wink:

Hier ein Link von Microsoft zu Dateadd - einfach gegoogelt (t sql Dateadd):

Wir wollen combit doch nicht zumuten sämtliche SQL-Befehle zu dokumentieren.

Viele Grüße cosmolink

WAS?!! :flushed: Den gibt es seit Version 8, das sind über 7 Jahre. :thinking: Okay… :smiley:

Disclaimer: @Ronald_Kissling Wenn jemand von combit (inkl. mir) hier im Forum antwortet, bezieht sich das immer immer immer auf die aktuelle Produktversion, die alle unsere Kund:innen im Zuge eines aktiven Wartungsvertrages immer automatisch inklusive haben. :muscle: Produktversionsspezifische Unterschiede können wir hier im Forum nicht handeln, daher sag ich das lieber jetzt sicherheitshalber zur „Vorwarnung“, falls Sie bei irgendeinem Verweis auf ein Feature oder Menüpunkt nur „Bahnhof“ verstehen. :slight_smile:

Ich teste das jetzt mal nicht ich kann mich also irren. Aber ich glaube das die Methode mit dateadd() auf das Kriterium bevorzugt werden sollte. Die Variante die Spalte ebenfalls zu DATE zu konvertieren könnte dafür sorgen das Indexe nicht funktionieren. Bei großen Datenmengen wird das also langsamer.