sql >> Base de Datos >  >> RDS >> Oracle

Formateo de FECHA en Oracle

:¡¡¡Use el formato de fecha aaaa-MM-dd !!!

Eso no está relacionado de ninguna manera con un error de Oracle.

Tengo un campo de fecha en una tabla que contiene la fecha en formato dd-MMM-aa.

No, estás confundido. Oracle no almacena fechas en el formato que ve. Lo almacena internamente en 7 bytes con cada byte almacenando diferentes componentes de datetime valor.

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

Si desea mostrar, use TO_CHAR con el MODELO DE FORMATO adecuado .

Al insertar, use TO_DATE con el MODELO DE FORMATO adecuado .

Lo que ve como un formato predeterminado es su configuración de NLS específica de la región. .

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>

Actualizar Con respecto a MMM formato.

Por MMM si te refieres al nombre del mes de hasta tres caracteres, entonces usa MON .