Oracle
 sql >> Database >  >> RDS >> Oracle

Formattazione della DATA in Oracle

:Utilizza il formato data aaaa-MM-gg !!!

Questo non è in alcun modo correlato a un errore Oracle.

Ho un campo data in una tabella che contiene la data nel formato gg-MMM-aa .

No, sei confuso. Oracle non memorizza le date nel formato visualizzato. Lo memorizza internamente in 7 byte con ogni byte che memorizza diversi componenti di datetime valore.

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

Se vuoi visualizzare, usa TO_CHAR con un corretto FORMATO MODELLO .

Durante l'inserimento, utilizza TO_DATE con un corretto FORMATO MODELLO .

Quello che vedi come formato per impostazione predefinita sono le tue impostazioni NLS specifiche per le impostazioni locali .

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>

Aggiorna Riguardo a MMM formato.

Per MMM se intendi il nome del mese fino a tre caratteri, utilizza MON .