Date als Parameter funktioniert nicht

Hallo Forum

ich habe eine Funktion geschrieben, bei der ich mit Hilfe eines Datums auf meine Werte in der Tabelle zugreifen möchte. Die Funktion sieht so aus:
CREATE OR REPLACE FUNCTION tissue.get_system_log_entry_by_date
(
requested_date date
)
RETURNS TABLE
(
log_id bigint,
out_date date,
out_time time WITHOUT TIME ZONE,
module_id varchar,
log_level varchar,
message varchar
)
AS
$$
begin
RETURN QUERY
SELECT *
from tissue.logfiles_system as ls
where ls._date = requested_date;
end
$$
LANGUAGE ‘plpgsql’
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;

Nun habe ich das Problem, auch wenn ich ein gültiges Datum als Parameter angebe, dass ich keine Rückgabewerte bekomme. Ich bekomme auch keine Fehlermeldung. Nur die Spalten meiner Tabelle sind leer. Das Datum ist in der Tabelle als z.B. 12.08.2010 abgelegt. Als Parameter übergebe ich es dann als ‘12.08.2010’. Wenn ich das gleiche mit Time mache (z.B. ‘12:58:43’) dann funktioniert das ganze und ich bekomme die Werte aus der Tabelle zurückgeliefert. Bei Date aber nicht. Wo liegt da der Fehler?

Vielen Dank für eure Hilfe! Ach so, ich arbeite mit PostgreSQL 8.4

Wilde Vermutung: internationales (amerikanisches) versus deutsches Datumsformat?

Andreas

Dummer Fehler, du hattest Recht. Wenn ich das Datum im amerikanischen Format eingebe ‘2010-08-12’ dann akzeptiert das die DB. Kann ich das Datumsformat auch auf 12.08.2010 ändern? Also das die Datenbank dieses Format akzeptiert?

to_date() ist Dein Freund.

Andreas

Nur so nebenbei: dass ist das ISO Format, das amerikanische (oder englische) Format is 12-08-2010.

Ich habe mir angewöhnt ein Datum immer als ISO Literal anzugeben: DATE ‘2010-08-12’ (beachte das DATE vor der Zeichenkette)
Das ist standardisiert und klappt mit fast jeder Datenbank.
Ansonsten eben die to_date() verwenden wie akretschmer gesagt hat.