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

Formatering af DATE i oracle

:Brug venligst åååå-MM-dd datoformat !!!

Det er på ingen måde relateret til en Oracle-fejl.

Jeg har et datofelt i en tabel, der indeholder dato i formatet dd-MMM-åå .

Nej, du er forvirret. Oracle gemmer ikke datoer i det format, du ser. Den gemmer den internt i 7 bytes med hver byte, der gemmer forskellige komponenter i datetime værdi.

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

Hvis du vil vise, skal du bruge TO_CHAR med korrekt FORMATMODEL .

Brug TO_DATE, mens du indsætter med korrekt FORMATMODEL .

Det, du ser som et format som standard, er dine lokale specifikke NLS-indstillinger .

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>

Opdater Med hensyn til MMM format.

Med MMM, hvis du mener månedens navn op til tre tegn, så brug MON .




  1. Opret forbindelse til ekstern MySQL-server med SSL fra PHP

  2. Belastningsbalancering med ProxySQL For Percona XtraDB Cluster

  3. Spring Batch ORA-08177:kan ikke serialisere adgang til denne transaktion, når der køres enkeltjob, SERIELISERET isolationsniveau

  4. få en kommasepareret streng fra rækker