Date als Parameter funktioniert nicht

Probleme und Fragen zum Thema Trigger und Funktionen.

Date als Parameter funktioniert nicht

Beitragvon samo80 » Mo 16. Aug 2010, 13:56

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
samo80
Neuer Benutzer
 
Beiträge: 6
Registriert: Mo 16. Aug 2010, 13:50

Beitragvon akretschmer » Mo 16. Aug 2010, 14:03

samo80 hat geschrieben:Hallo Forum

i
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
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5954
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon samo80 » Mo 16. Aug 2010, 14:28

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?
samo80
Neuer Benutzer
 
Beiträge: 6
Registriert: Mo 16. Aug 2010, 13:50

Beitragvon akretschmer » Mo 16. Aug 2010, 14:43

samo80 hat geschrieben: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
--
ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)

https://www.xing.com/profile/Andreas_Kretschmer7
Hosting-Provider mit PostgreSQL-Support gesucht? Mich fragen!
akretschmer
Erfahrener Benutzer
 
Beiträge: 5954
Registriert: So 29. Okt 2006, 14:35
Wohnort: Kaufbach, Sachsen, Germany, Germany

Beitragvon castorp » Mo 16. Aug 2010, 15:53

samo80 hat geschrieben:Wenn ich das Datum im amerikanischen Format eingebe '2010-08-12'
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.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
castorp
Erfahrener Benutzer
 
Beiträge: 676
Registriert: Sa 27. Jun 2009, 22:24


Zurück zu Trigger und Funktionen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron