Verstehen und Arbeiten mit DATE und TIMESTAMP in Oracle APEX-Anwendungen (2023)

In Oracle APEX-Anwendungen sind die Arbeit mit DATE und TIMESTAMP Datentypen allgegenwärtig, da sie in nahezu jedem Datenmodell vorkommen. Daher ist es entscheidend, als APEX-Entwickler ein fundiertes Verständnis für diese Datentypen zu haben. In diesem Artikel werden wir uns detailliert mit DATE und TIMESTAMP in Oracle APEX-Anwendungen befassen und darauf eingehen, wie man sie effizient verarbeitet.

DATE oder TIMESTAMP?

Die Oracle-Datenbank bietet vier verschiedene Datentypen zum Speichern von Zeitstempeln an, wovon DATE der älteste und am weitesten verbreitete ist. Obwohl der Name "DATE" nahelegt, dass er nur das Datum speichert, enthält er auch die Uhrzeit. Intern werden spezifische Werte für Jahr, Monat, Tag, Stunde, Minute und Sekunde gespeichert. Ein Beispiel:

SELECT SYSDATE FROM DUAL;

Dies gibt den aktuellen Zeitstempel zurück.

Der TIMESTAMP-Datentyp erweitert DATE, indem er Sekundenbruchteile unterstützt. Er kann auch Zeitzoneninformationen speichern. Um die aktuelle Zeit als TIMESTAMP zu erhalten:

SELECT CURRENT_TIMESTAMP FROM DUAL;

TIMESTAMP WITH TIME ZONE

Dieser Datentyp unterstützt die explizite Angabe der Zeitzone. Die Zeitzoneninformation muss beim Erzeugen einer Instanz übergeben werden und sollte in der Ausgabe stets enthalten sein. Es werden keine impliziten Umrechnungen zwischen Zeitzonen vorgenommen.

SELECT FROM_TZ(CAST(SYSTIMESTAMP AS TIMESTAMP), 'America/New_York') AS Timestamp_TZ FROM DUAL;

TIMESTAMP WITH LOCAL TIME ZONE

Dieser Datentyp unterstützt Zeitzonen implizit. Instanzen werden ohne Angabe einer Zeitzone erzeugt und nehmen die Session-Zeitzone an. Die Ausgabe erfolgt ebenfalls in der Session-Zeitzone.

SELECT LOCALTIMESTAMP FROM DUAL;

Formatmasken

In APEX-Anwendungen wird die Ausgabe von DATE- oder TIMESTAMP-Instanzen immer als VARCHAR2 konvertiert. Dies erfolgt entweder explizit mit TO_CHAR oder implizit durch die Datenbank. Dabei spielen die NLS-Datumsformatmasken eine wichtige Rolle:

  • NLS_DATE_FORMAT für DATE
  • NLS_TIMESTAMP_FORMAT für TIMESTAMP und TIMESTAMP WITH LOCAL TIME ZONE
  • NLS_TIMESTAMP_TZ_FORMAT für TIMESTAMP WITH TIME ZONE

Die Default-Formatmaske variiert je nach Datentyp. Bei einer expliziten Konvertierung mit TO_CHAR kann man die Formatmaske als zweiten Parameter angeben:

SELECT TO_CHAR(SYSDATE, 'DD.MM.YYYY HH24:MI:SS') AS FormatierterZeitstempel FROM DUAL;

Arbeit in Oracle APEX

In Oracle APEX-Anwendungen gelten die gleichen Prinzipien wie in SQL. APEX nutzt die NLS-Parameter aus den Anwendungsattributen, um die Formatierung von Datum und Zeit zu steuern. Man kann die Formatmasken für DATE und TIMESTAMP in den Anwendungsattributen einstellen, um sicherzustellen, dass die Ausgabe den Anforderungen der Anwendung entspricht.

Eine besondere Formatmaske, die nur in APEX vorhanden ist, ist "SINCE". Diese gibt an, wie lange ein Zeitstempel zurückliegt, und wird in der Anwendungssprache angezeigt.

Fazit

Das Verständnis von DATE und TIMESTAMP in Oracle APEX-Anwendungen ist entscheidend, um effektiv mit Zeitstempeln umzugehen. Die richtige Verwendung von Formatmasken und die Anpassung der NLS-Parameter in APEX-Anwendungen ermöglichen eine präzise Steuerung der Datums- und Zeitformatierung. Dies ist unerlässlich, um benutzerfreundliche und konsistente Anwendungen zu erstellen.

Mit diesem Wissen können APEX-Entwickler sicherstellen, dass sie Zeitstempel in ihren Anwendungen korrekt darstellen und verarbeiten, unabhängig von den Anforderungen und Zeitzonen. Dies ist ein wesentlicher Schritt zur Entwicklung qualitativ hochwertiger Oracle APEX-Anwendungen.

Top Articles
Latest Posts
Article information

Author: Van Hayes

Last Updated: 01/10/2023

Views: 5888

Rating: 4.6 / 5 (66 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Van Hayes

Birthday: 1994-06-07

Address: 2004 Kling Rapid, New Destiny, MT 64658-2367

Phone: +512425013758

Job: National Farming Director

Hobby: Reading, Polo, Genealogy, amateur radio, Scouting, Stand-up comedy, Cryptography

Introduction: My name is Van Hayes, I am a thankful, friendly, smiling, calm, powerful, fine, enthusiastic person who loves writing and wants to share my knowledge and understanding with you.