sql >> Database >  >> RDS >> Oracle

DATE formatteren in orakel

:Gebruik de datumnotatie jjjj-MM-dd !!!

Dat is op geen enkele manier gerelateerd aan een Oracle-fout.

Ik heb een datumveld in een tabel die de datum bevat in de notatie dd-MMM-yy .

Nee, je bent in de war. Oracle slaat datums niet op in het formaat dat u ziet. Het slaat het intern op in 7 bytes waarbij elke byte verschillende componenten van de datetime . opslaat waarde.

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

Als u wilt weergeven, gebruikt u TO_CHAR met het juiste FORMAATMODEL .

Gebruik tijdens het invoegen TO_DATE met het juiste FORMAATMODEL .

Wat u standaard als een indeling ziet, zijn uw landspecifieke NLS-instellingen .

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>

Bijwerken Over MMM formaat.

Met MMM als u de naam van de maand van maximaal drie tekens bedoelt, gebruik dan MON .




  1. Oracle-cursor voor toewijzing

  2. Updates van het Microsoft Access-team (juni 2017)

  3. Oracle - Kloontabel - Structuur, gegevensbeperkingen en alles

  4. [Video] Gegevensintegratie met PostgreSQL