Oracle
 sql >> Datenbank >  >> RDS >> Oracle

DATUM in Oracle formatieren

:Bitte verwenden Sie das Datumsformat JJJJ-MM-TT !!!

Das hat nichts mit einem Oracle-Fehler zu tun.

Ich habe ein Datumsfeld in einer Tabelle, das ein Datum im Format TT-MMM-JJ enthält .

Nein, Sie sind verwirrt. Oracle speichert Datumsangaben nicht in dem angezeigten Format. Es speichert es intern in 7 Bytes wobei jedes Byte verschiedene Komponenten der datetime speichert Wert.

Byte    Description
----    -------------------------------------------------
1       Century value but before storing it add 100 to it
2       Year and 100 is added to it before storing
3       Month
4       Day of the month
5       Hours but add 1 before storing it
6       Minutes but add 1 before storing it
7       Seconds but add 1 before storing it

Wenn Sie anzeigen möchten, verwenden Sie TO_CHAR mit dem richtigen FORMATMODELL .

Verwenden Sie beim Einfügen TO_DATE mit dem richtigen FORMATMODELL .

Was Sie standardmäßig als Format sehen, sind Ihre gebietsschemaspezifischen NLS-Einstellungen .

SQL> select parameter, value from v$nls_parameters where parameter='NLS_DATE_FORMAT';

PARAMETER       VALUE
--------------- ----------------------------------------------------------------
NLS_DATE_FORMAT DD-MON-RR

SQL> select sysdate from dual;

SYSDATE
---------
03-FEB-15

SQL> select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'MM
-------------------
02/03/2015 17:59:42

SQL>

Aktualisieren Bezüglich MMM Format.

Wenn Sie mit MMM den Monatsnamen mit bis zu drei Zeichen meinen, verwenden Sie MON .