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

Come modificare il formato della data nel database di Oracle

Spesso abbiamo bisogno di cambiare il formato della data durante il controllo. Ecco alcuni modi che puoi utilizzare per modificare il formato della data nel database Oracle

Formato data predefinito Oracle

Il formato della data predefinito in Oracle è controllato dal valore del parametro NLS_DATE_FORMAT.

La query seguente può essere utilizzata per trovare il valore corrente del parametro NLS_DATE_FORMAT

SELECT
  value
FROM
  V$NLS_PARAMETERS
WHERE
  parameter = 'NLS_DATE_FORMAT';

Come modificare il formato per l'intera sessione

Possiamo cambiare il parametro nella sessione e scegliere il formato che vogliamo per la data Oracle. Ecco lo sql che può essere usato per fare nella sessione

ALTER SESSION SET NLS_DATE_FORMAT = '[date_format]';
MM  Numeric month (e.g., 07)
MON     Abbreviated month name (e.g., JUL)
MONTH   Full month name (e.g., JULY)
DD  Day of month (e.g., 24)
DY  Abbreviated name of day (e.g., FRI)
YYYY    4-digit year (e.g., 1998)
YY  Last 2 digits of the year (e.g., 98)
RR  Like YY, but the two digits are ``rounded'' to a year in the range 1950 to 2049. Thus, 06 is considered 2006 instead of 1906
AM (or PM)  Meridian indicator
HH  Hour of day (1-12)
HH24    Hour of day (0-23)
MI  Minute (0-59)
SS  Second (0-59)

Esempio

alter session set nls_date_format = 'dd-mon-yyyy hh24:mi:ss';

Ora, qualunque sia la query che eseguirai, la colonna della data verrà formattata secondo il formato della data sopra

Example
select sysdate from dual;

Come cambiare il formato della data usando la funzione to_char

Potremmo voler avere un formato di data diverso per le diverse query sql. In tal caso, puoi pianificare di utilizzare la funzione Oracle a riga singola to_char e puoi convertire la colonna di dati Oracle nel formato che desideri

Example
select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_char(sysdate, 'dd-mon-yyyy')  from dual;  

Come modificare il formato della data utilizzando la funzione to_date

Potremmo voler cambiare le stringhe in formato data per il confronto, per la memorizzazione come data nella tabella Oracle. In questo caso, puoi utilizzare la funzione Oracle to_date

 Example
select to_date('11-JAN-2019 13:12:12', 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_date( '11-JAN-2019', 'dd-mon-yyyy')  from dual;   

La cosa importante da notare:la stringa viene convertita in una data e la data viene restituita come nel formato di data predefinito nell'istruzione select. Se stai utilizzando la funzione to_date per memorizzare le stringhe come data nella colonna della data, questa verrà archiviata solo come data. Ora, quando selezioni quella colonna, la data verrà visualizzata nel formato della data predefinito di Oracle impostato nella sessione.

Come formattare la data per visualizzare giorno, settimana, mesi ecc

 Day of Week
 SQL> select to_char(sysdate,'D') col from dual; 
 col
----
 2

 Name of WeekDay
 SQL> select to_char(sysdate,'DAY') col from dual;
 col
---
MONDAY
 
Abbreviated name of day
 SQL> select to_char(sysdate,'DY') from dual;
 col
----
 MON
 
Day of Month
 SQL> select to_char(sysdate,'DD') from dual;
 col
----
 30
 
Abbreviated name of month
 SQL> select to_char(sysdate,'MON') from dual;
 col
----
 NOV
 
Name of Month
 SQL> select to_char(sysdate,'MONTH') from dual;
 col
-----
NOVEMBER

Day of Year
SQL> select to_char(sysdate,'DDD') from dual;
 col
----
 334
 
Week of the year
SQL> select to_char(sysdate,'IW') from dual;
 col
----
 05

Week of Month
 SQL> select to_char(sysdate,'W') from dual;
 col
-----
 5

Month in Numbers
SQL> select to_char(sysdate,'MM') from dual;
 col
----
 11

Year in Numbers
SQL> select to_char(sysdate,'YYYY') from dual;
 col
----
 2019
 
Year in words
SQL> select to_char(sysdate,'YEAR') from dual;
col
---
TWENTY NINE

Hour in 0-12 format
SQL> select to_char(sysdate,'HH') from dual'
col
----
08

Hour in 0-24 format
SQL> select to_char(sysdate,'HH24') from dual;
col
---
 12

Minutes
 SQL> select to_char(sysdate,'MI') from dual;
 col
----
 45
 
Seconds
 SQL> select to_char(sysdate,'SS') from dual;
 col
----
 45
 

Spero che ti piacciano questi semplici passaggi su come modificare il formato della data nel database di Oracle. Ci possono essere molti esempi in cui questo può essere utilizzato. Ho appena fornito alcuni semplici esempi per dimostrare la funzionalità

Leggi anche
Funzioni di data di Oracle: Questo post copre le funzioni di data di Oracle, la differenza di data di Oracle in anni, la differenza di data di Oracle in giorni, la differenza di data di Oracle in mesi.
La funzione NULLIF in Oracle:la funzione NULLIF in Oracle confronta due valori e restituisce null se i valori sono uguali, altrimenti restituisce il primo valore. Non è possibile specificare il valore NULL letterale nei valori
Istruzione di aggiornamento in Oracle:usiamo l'istruzione di aggiornamento in Oracle per modificare le righe esistenti nella tabella di Oracle nella database di oracle. L'aggiornamento può essere eseguito in più modi
Coalesce Function in Oracle:la funzione Coalesce in Oracle restituirà la prima espressione se non è null, altrimenti coalesce il resto dell'espressione.
come fare per ottenere i metadati di una tabella in Oracle:Scopri come ottenere la definizione della tabella in Oracle, Oracle mostra la definizione dell'indice, ottieni ddl di vista materializzata in Oracle, ottieni la query di una vista in Oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html