Mein Suchfeld in der Applikation ist ein nomales TextEdit.
Darin will ich nach Datum und Text suchen.
Wie das untere Beispiel aufzeigt.
Ich verwende dort die extract Befehle bereits.
Kann doch nicht sein das ich jedes mal das Datum in meinem Landes-Format zusammensetzen muss.
Darum möchte ich für das eine Funktion schreiben.
Code:
SELECT h.*, a.VORNAME ||' '|| a.NACHNAME ||' '|| a.PLZ ||' '|| a.ORT as Besitzer from hund h
left join adresse a on a.ID = h.BESITZER_ID
where
LOWER(h.HUNDNAME) LIKE :suche or
extract(day from h.GEBURTSDATUM)||'.'||extract(month from h.GEBURTSDATUM)||'.'||extract(year from h.GEBURTSDATUM) LIKE :suche or
LOWER(h.CHIP_NR) LIKE :suche or
LOWER(h.ANMELDUNGSGRUND) LIKE :suche or
LOWER(a.VORNAME) LIKE :suche or
LOWER(a.Nachname) LIKE :suche or
LOWER(a.PLZ) LIKE :suche or
LOWER(a.Ort) LIKE :suche
Folgende Prozedur funktioniert, ist aber keine Funktion daher kann ich diese nicht im Join oben verwenden!:
Code:
create or alter procedure CONVERT_DATE (
DATA timestamp not null)
returns (
RESULT varchar(30))
as
begin
if(DATA IS NULL) then
begin
result = NULL;
end
else
begin
result = (LPAD(extract(DAY FROM DATA),2,'0') ||'.'||
LPAD(extract(MONTH FROM DATA),2,'0') ||'.'||
LPAD(extract(YEAR FROM DATA),4,'0') ||' '||
LPAD(extract(HOUR FROM DATA),2,'0') ||':'||
LPAD(extract(MINUTE FROM DATA),2,'0') ||':'||
LPAD(extract(SECOND FROM DATA),7,'0'));
end
suspend;
end^
SET TERM ; ^