No Oracle temos uma função muito útil para a obtenção de datas. Esta função é o SYSDATE!
para obter a data atual “do oracle” basta fazer
SELECT SYSDATE FROM DUAL;
O SYSDATE do ORACLE retorna a data obtida pelo oracle do servidor. Porém vc pode forçar o uso de outras datas e horas em sua sessão. ( explicarei em posts futuros )
Como fazer calculos com SYSDATE?
No banco oracle temos um conceito interessante: cada unidade representa um dia ( ~24h ).
Ou seja, se eu quiser mostrar a data de amanhã posso fazer:
SELECT SYSDATE+1 FROM DUAL
Acima, eu solicitei que o oracle mostre a data de hoje mais uma unidade ( ~24h ) que dará o mesmo de amanhã.
Para calcular horas minutos ou segundos basta trabalhar um pouquinho na matemática:
SELECT SYSDATE+1/24 FROM DUAL
Se cada unidade representa 24h então se dividirmos a unidade por 24 teremos as horas!
Logo, na expressão anterior vamos retornar o horário daqui a 1 hora.
OBS.:
Para utilizar como parâmetro de comparação em selects, podemos utilizar o SYSDATE, adicionando ou subtraindo dias ou horas.
— Ex.: Consulta tabela CLIENTE onde o campo DATA_CADASTRO for maior ou igual que 5 dias atrás.
SELECT * FROM CLIENTE WHERE DATA_CADASTRO >= SYSDATE-5;
Fonte: http://www.dartanghan.com.br/oracle-plsql/oracle-sysdate/