Oracle
 sql >> Base de données >  >> RDS >> Oracle

Formatage DATE dans oracle

:Veuillez utiliser le format de date aaaa-MM-jj !!!

Ce n'est en aucun cas lié à une erreur Oracle.

J'ai un champ de date dans une table qui contient la date au format jj-MMM-aa .

Non, vous êtes confus. Oracle ne stocke pas les dates dans le format que vous voyez. Il le stocke en interne dans 7 octets avec chaque octet stockant différents composants de la datetime valeur.

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 vous souhaitez afficher, utilisez TO_CHAR avec le MODÈLE DE FORMAT approprié .

Lors de l'insertion, utilisez TO_DATE avec le MODÈLE DE FORMAT approprié .

Ce que vous voyez comme format par défaut, ce sont vos paramètres NLS spécifiques aux paramètres régionaux .

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>

Mettre à jour Concernant MMM format.

Par MMM si vous voulez dire le nom du mois jusqu'à trois caractères, utilisez alors MON .