Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como alterar o formato de data no banco de dados Oracle


Muitas vezes precisamos alterar o formato da data durante a verificação. Aqui estão algumas maneiras que você pode usar para alterar o formato de data no banco de dados Oracle

Formato de data padrão do Oracle


O formato de data padrão no oracle é controlado pelo valor do parâmetro NLS_DATE_FORMAT.

A consulta a seguir pode ser usada para encontrar o valor atual do parâmetro NLS_DATE_FORMAT
SELECT
  value
FROM
  V$NLS_PARAMETERS
WHERE
  parameter = 'NLS_DATE_FORMAT';

Como alterar o formato de toda a sessão


Podemos alterar o parâmetro na sessão e escolher o formato que quisermos para a data do Oracle. Aqui está o sql que pode ser usado para fazer na sessão
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)

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

Agora, qualquer que seja a consulta que você executar, a coluna de data será formatada de acordo com o formato de data acima
Example
select sysdate from dual;

Como alterar o formato de data usando a função to_char


Podemos querer ter um formato de data diferente para as diferentes consultas sql. Nesse caso, você pode planejar usar a função de linha única do Oracle to_char e pode converter a coluna de dados do Oracle para o formato que desejar
Example
select to_char(sysdate, 'dd-mon-yyyy hh24:mi:ss')  from dual; 
select to_char(sysdate, 'dd-mon-yyyy')  from dual;  

Como alterar o formato de data usando a função to_date


Podemos querer alterar as strings para o formato de data para comparação, para armazenar como a data na tabela Oracle. Neste caso, você pode usar a função 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;   

O importante a ser observado:a string é convertida em uma data e a data é retornada como no formato de data padrão na instrução select. Se você estiver usando a função to_date para armazenar strings como a data na coluna de data, isso será armazenado apenas como data. Agora, ao selecionar essa coluna, a data será exibida no formato de data padrão oracle definido na sessão.

Como formatar a data para exibir dia, semana, meses etc

 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
 

Espero que você goste destes passos simples sobre como alterar o formato de data no banco de dados Oracle. Pode haver muitos exemplos onde isso pode ser usado. Acabei de dar alguns exemplos simples para demonstrar a funcionalidade

Leia também
funções de data oracle: Esta postagem abrange funções de data oracle, diferença de data oracle em anos, diferença de data oracle em dias, diferença de data oracle em meses.
Função NULLIF no Oracle:função NULLIF no Oracle compara dois valores e return null se os valores forem iguais, caso contrário, retorne o primeiro valor. Você não pode especificar o literal NULL em valores banco de dados oracle.A atualização pode ser executada de várias maneiras
Função Coalesce no Oracle:A função Coalesce no oracle retornará a primeira expressão se não for nula, senão fará a união do restante da expressão.
como obter metadados de uma tabela no oracle :Confira como obter definição de tabela no oracle, oracle mostre definição de índice, obtenha ddl de visão materializada em oracle, obtenha a consulta de uma visão em oracle
http://infolab.stanford .edu/~ullman/fcdb/oracle/or-time.html