Oracle Datums-Datentyp, transformiert in 'JJJJ-MM-TT HH24: MI: SS TMZ' durch SQL

8

Ich habe eine Anwendung, die in eine Oracle Data-Datentypspalte über:

hochlädt %Vor%

Ich muss jetzt das folgende Format und die Zeitzone aus dieser Datenspalte ziehen: "JJJJ-MM-TT HH24: MI: SS CDT"

Hinweis: Das Datum wird in CST hochgeladen, muss jedoch in CDT zurückgegeben werden.

Ich habe Google aber nur folgende Datentypen gefunden:

%Vor%

Ich habe auch folgendes versucht:

%Vor%

Wie kann ich dieses Problem lösen?

    
James Gallagher 05.04.2013, 11:41
quelle

2 Antworten

15

In Ihrer Frage gibt es ein wenig Verwirrung:

  • Ein Date -Datentyp speichert die Zeitzonenkomponente nicht. Diese Information wird abgeschnitten und für immer verloren, wenn Sie TIMESTAMP WITH TIME ZONE in Date einfügen.
  • Wenn Sie ein Datum entweder auf dem Bildschirm anzeigen oder es über eine Zeichen-API (XML, Datei ...) an ein anderes System senden möchten, verwenden Sie das TO_CHAR Funktion. In Oracle hat a Date kein Format : Es ist ein Zeitpunkt.
  • Umgekehrt würden Sie TO_TIMESTAMP_TZ verwenden, um a zu konvertieren VARCHAR2 zu TIMESTAMP , aber dies konvertiert nicht Date in TIMESTAMP .
  • Sie verwenden FROM_TZ , um die Informationen zur Zeitzone zu einem TIMESTAMP (oder einem Date ) hinzuzufügen.
  • In Oracle ist CST eine Zeitzone, CDT jedoch nicht. CDT ist eine Sommerzeit-Information.
  • Um die Dinge noch weiter zu komplizieren, werden CST/CDT ( -05:00 ) und CST/CST ( -06:00 ) natürlich unterschiedliche Werte haben, aber die Zeitzone CST erbt standardmäßig die Sommerzeit-Information in Abhängigkeit vom Datum .

Daher ist Ihre Konvertierung möglicherweise nicht so einfach wie es aussieht.

Angenommen, Sie möchten ein Date d , von dem Sie wissen, dass es in der Zeitzone CST/CST gültig ist, in das Äquivalent in der Zeitzone CST/CDT konvertieren, würden Sie Folgendes verwenden:

%Vor%

Mein Standard-Zeitstempelformat wurde hier verwendet. Ich kann ein Format explizit angeben:

%Vor%     
Vincent Malgrat 05.04.2013, 13:09
quelle
2

um einen TimestampTZ in Oracle zu konvertieren, machst du

%Vor%

siehe hier: Ссылка

und hier für Regionen: Ссылка

zB:

%Vor%     
DazzaL 05.04.2013 12:27
quelle

Tags und Links