Ir para o conteúdo principal

Utilização de Datas e Conversões (current_date, current_time, timestamp, etc)

CURRENT_DATE

Seleciona data atual (função alternativa: sysdate para pegar a data do sistema/servidor)

select current_date from dual --> Retorno: "2019-09-13"
CURRENT_TIMESTAMP

Seleciona data e hora atual (função alternativa: systimestamp para pegar a data e hora do sistema/servidor)

select current_timestamp from dual --> Retorno: "2019-09-13 08:56:29.649098-03"

***OBSERVAÇÃO: Importante saber que o banco estará parametrizado para mostrar um valor de data/hora com um único formato para todos. Se a intenção é mostrar a data/hora em um formato diferente do parametrizado, é necessário converter a data/hora para um valor do tipo texto, definindo o formato desejado nas funções de conversão. Veja abaixo.

TO_CHAR

Pode ser usado para converter uma data/hora para texto no formato em que deseja visualizar.

select to_char(current_date, 'MM/YYYY') from dual --> Retorno: "09/2019"
select to_char(current_date, 'DD/MM/YYYY HH24:MI:SS') from dual --> Retorno: "13/09/2019 08:56:29"
select to_char(current_date, 'HH24:MI') from dual --> Retorno: "08:56"
select to_char(current_date, 'Day') from dual --> Retorno: "Sexta-Feira"
select to_char(current_date, 'DD')||' de '||trim(to_char(current_date, 'Month'))||' de '||to_char(current_date, 'YYYY') from dual --> Retorno: "13 de Setembro de 2019"

***OBSERVAÇÃO: Em Oracle, a função current_date também é usada para selecionar horas, minutos e segundos.

TO_DATE E TO_TIMESTAMP

Usado para converter um valor texto para um valor data/hora.

select to_date('13/09/2019', 'DD/MM/YYYY') from dual --> Retorno: "2019-09-13"
select to_timestamp('13/09/2019 08:51:43', 'DD/MM/YYYY HH24:MI:SS') from dual --> Retorno:"2019-09-13 08:51:43-03"
EXTRACT

Pode ser usado para extrair uma informação específica de um campo de Data ou Data/hora.

select extract(year from sysdate) from dual --> Retorno: 2019 <-- (ano atual)
select extract(month from sysdate) from dual --> Retorno: 9 <-- (mês atual)
select extract(day from sysdate) from dual --> Retorno: 13 <-- (dia do mês atual)
select extract(hour from sysdate)||':'||
	   extract(minute from sysdate)||':'||
	   trunc(extract(second from sysdate)) from dual --> Retorno: 14:43:46 <-- (hora atual)
CAST

Função para fazer conversão de valores de diversos tipos. Neste caso, de texto para data (A data precisa estar informada no mesmo formato parametrizado no banco de dados).

select cast('13-09-2019' as date) from dual --> Retorno: "2019-09-13"