Seite 1 von 1

Abfrage: Jahreseingabe beim Filtern nach Datumsbereich und Stichtag

Verfasst: So 29. Jan 2023, 14:14
von jot-zet
Hallo,

es ist kein riesen Problem - aber vielleicht gibt es ja auch eine ganz einfache Lösung. Also - ich habe in meiner Datenbank mehrere Abfragen, in denen die Datensätze nach einem Datumsbereich gefiltert werden, der von Hand eigeben wird:

Code: Alles auswählen

ZWISCHEN :a_Datum_von UND :b_Datum_bis
Zudem wird noch in einigen Abfragen das Alter ermittelt über einen Stichtag:

Code: Alles auswählen

DATEDIFF( 'yy', "geboren am", :Stichtag )
Nun ist es so, das der Datumsbereich immer vom 1.1. bis zum 31.12. eines Jahres geht und der Stichtag immer der 30.06. des selben Jahres ist. Im Moment muss man jedesmal alle 3 Datumsangaben einzeln eingegeben. Ich würde es gern vereinfachen, indem man nur noch das Jahr angeben muss - weil es ja das einzige ist, was sich ändert. Natürlich habe ich schon rumprobiert und recherchiert - leider keine Lösung gefunden...

Ergänzung:
Der nächste Versuch war mit:

Code: Alles auswählen

ZWISCHEN ( '1.1.' || :Jahr ) UND ( '31.12.' || :Jahr )
Leider kommt dann:
Wrong data type: java.lang.IllegalArgumentException in statement
Heureka - habs eben selbst herausgefunden:

Code: Alles auswählen

ZWISCHEN ( :Jahr || '-1-1' ) UND ( :Jahr || '-12-31' )
einfach mal auf das Datumsformat achten. Wobei - bei den anderen Eingaben nahm er auch das Format D.M.YY usw. , Insofern etwas verwirrend - am Ende egal, wenn es funktioniert :D .

Thread kann geschlossen werden...

Jan

Re: Abfrage: Jahreseingabe beim Filtern nach Datumsbereich und Stichtag

Verfasst: So 29. Jan 2023, 15:06
von F3K Total
oder so was:

Code: Alles auswählen

 DATEDIFF('yy',"geboren am",CAST(:JAHR ||'-06-30' AS DATE)) "ALTER" 
Gruß R

Re: Abfrage: Jahreseingabe beim Filtern nach Datumsbereich und Stichtag

Verfasst: So 29. Jan 2023, 15:43
von RobertG
…und immer dran denken: Mit Parameteranfragen ist eine Bearbeitungsschicht der GUI dabei. Da kann es dann schon sein, dass statt des normalen Dezimaltrenners in SQL (Punkt) ein Komma ermöglicht wird und statt der normalen Datumseingabe in SQL mit YYYY-MM-DD eine Eingabe nach der länderspezifischen Schreibweise drin ist. Die Datenbank kann damit aber nichts anfangen. Für die muss das also nach der Parametereingabe erst einmal durch die Benutzeroberfläche in ein brauchbares Format umgewandelt werden.