sql >> Databasteknik >  >> RDS >> Oracle

Formaterar DATE i oracle

:Vänligen använd åååå-MM-dd datumformat !!!

Det är inte relaterat till ett Oracle-fel.

Jag har ett datumfält i en tabell som innehåller datum i formatet dd-MMM-åå .

Nej, du är förvirrad. Oracle lagrar inte datum i det format du ser. Den lagrar den internt i 7 byte med varje byte som lagrar olika komponenter i datetime värde.

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

Om du vill visa, använd TO_CHAR med rätt FORMATMODEL .

Använd TO_DATE när du infogar med rätt FORMATMODEL .

Det du ser som ett format som standard är dina lokalspecifika NLS-inställningar .

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>

Uppdatera Angående MMM formatera.

Med MMM om du menar månadens namn upp till tre tecken, använd sedan MON .




  1. Massinlägg eller uppdatering för tabeller med bifogade fält

  2. Psql kunde inte ansluta till servern:Ingen sådan fil eller katalog, fel 5432?

  3. funktion för att kontrollera om SQLite använder journal_mode=WAL eller journal_mode=DELETE

  4. Vad är en beräknad kolumn i SQL Server?