ORACLE Zeitzonenproblematik

Hallo,

ich habe eine Anwendung, die Zeitstempel (GMT) in Oracle als Zahlenwerte abspeichert (Sekunden seit 1.1.1970). Mit einem Reporting-Tool möchte ich die Zeitstempel wieder auslesen und für Menschen lesbar machen. Dies gelingt auch wunderbar mit dem tollen Befehl:
to_date(to_char(to_date(‚01.01.1970‘,‚DD.MM.YYYY‘)+floor(XXXXXX.Zeitstempel / 86400),‚DD.MM.YYYY‘),‚DD.MM.YYYY‘)

Allerdings gibts ärger mit der Zeitzone. Wie kann ich es anstellen, daß mein Zeitstempel automatisch auf meine Zeitzone umgerechnet wird (auch unter Beachtung von Sommer und Winterzeit)???

Viele Grüße
Albert

Ich verstehe das Problem nicht ganz. Wenn jemand sagen wir am 2.1.1970 um 00:00:01 den Zeitstempel schreibt sollte - wenn ich Dich richtig verstanden habe - 86401 abgespeichert werden. Das resultat von

select to\_date('01.01.1970','DD.MM.YYYY')+(86401/86400) from dual;

ist exakt diese Zeit. Das to_date(to_char(…)) solltest Du Dir sparen können, ebenso das floor(…). Dann hast Du exakt die Zeit, die abgespeichert wurde. Mit dem floor() schneidest Du im Prinzip ja nur die Uhrzeit am jeweiligen Tag weg, und mit dem to_date(to_char()) sorgst Du dafür, daß sie dann auch nicht ausgegeben wird. Wennst das haben willst, kann man es natürlich machen, notwendig ist es aber nicht (kommt natürlich darauf an, was Du mit den Daten nachher noch machen willst).

Um zum Thema zurück zu kommen: Vielleicht verstehe ich Dein Problem anhand eines Beispiels. Ich würde auf jeden Fall gerne helfen.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]