Heim >Datenbank >MySQL-Tutorial >Was ist das wahre Standarddatumsformat in Oracle und wie funktioniert es?

Was ist das wahre Standarddatumsformat in Oracle und wie funktioniert es?

Barbara Streisand
Barbara StreisandOriginal
2025-01-16 16:53:111007Durchsuche

Die Wahrheit über das Datumsformat der Oracle-Datenbank und seinen Funktionsmechanismus

Viele Artikel behaupten, dass das Standarddatumsformat von Oracle JJJJMMTT, TT/MM/JJJJ oder JJJJ-MM-TT ist. Dieses Missverständnis rührt jedoch daher, dass Oracle selbst kein vordefiniertes Datumsformat hat. Oracle speichert Datumsangaben intern als Binärwerte, die Jahr, Monat, Tag, Stunde, Minute und Sekunde darstellen.

Wenn Sie ein Datum mit einer Zeichenfolge wie „25-JAN-18“ in Oracle einfügen, versucht Oracle, die Zeichenfolge basierend auf dem Sitzungsparameter NLS_DATE_FORMAT in ein Datum umzuwandeln. Der Wert von NLS_DATE_FORMAT variiert je nach Region und Sitzungseinstellungen des Benutzers. Daher können gültige Datumsformate zwischen Benutzern variieren und sich innerhalb einer Sitzung dynamisch ändern.

String-zu-Datum-Konvertierung

Um zu vermeiden, dass Sie sich auf implizite Konvertierungen verlassen, wird empfohlen, eine Zeichenfolge mithilfe einer der folgenden Methoden explizit in ein Datum umzuwandeln:

  • Datumsliteral: Verwenden Sie das Schlüsselwort DATE, gefolgt von einer gültigen Datumsdarstellung, z. B. DATE „25.01.2018“.
  • Zeitstempel-Literal: Verwenden Sie das Schlüsselwort TIMESTAMP, gefolgt von der vollständigen Datumszeit, einschließlich der Uhrzeit und Sekundenbruchteilen, zum Beispiel TIMESTAMP '2018-01-25 01:23:45'.
  • TO_DATE-Funktion: Verwenden Sie TO_DATE('date_string', 'format_string'), um eine Zeichenfolge gemäß dem angegebenen Format in ein Datum umzuwandeln, z. B. TO_DATE('25-JUN-18', 'DD -MON- RR').

NLS_DATE_FORMAT ändern

Um den Sitzungsparameter NLS_DATE_FORMAT zu ändern, verwenden Sie die folgende Anweisung:

<code class="language-sql">ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';</code>

Standard-NLS_DATE_FORMAT

Das standardmäßige NLS_DATE_FORMAT hängt vom Sitzungsparameter NLS_TERRITORY ab, der das Gebietsschema des Benutzers widerspiegelt. Die folgende Abfrage zeigt die Beziehung zwischen NLS_TERRITORY und NLS_DATE_FORMAT:

<code class="language-sql">...
SELECT CAST(f.format AS VARCHAR2(12)) AS format,
       LISTAGG(t.territory, ', ') WITHIN GROUP (ORDER BY t.territory) AS territories
...</code>

Durch das Ausführen dieser Abfrage wird eine Liste der NLS_DATE_FORMAT-Werte und der entsprechenden anwendbaren Regionen generiert.

What is the True Default Date Format in Oracle and How Does it Work?

Das obige ist der detaillierte Inhalt vonWas ist das wahre Standarddatumsformat in Oracle und wie funktioniert es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn