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"