Apenas Mês, Dia ou Ano – ORACLE – SYSDATE

julho 8, 2015

Algumas vezes precisamos separar uma data, pegando apenas ANO, MÊS ou DIA. Veja abaixo como fazer:

 

Para pegar apenas o ANO da data atual, utilize uma das seguintes maneiras:

select EXTRACT(YEAR FROM sysdate) from dual;
select to_char(sysdate, ‘YYYY’) from dual;

 

Para pegar apenas o MÊS da data atual, utilize uma das seguintes maneiras:

select EXTRACT(MONTH FROM sysdate) from dual;
select to_char(sysdate, ‘mm’) from dual;

 

Para pegar apenas o DIA da data atual, utilize uma das seguintes maneiras:

select EXTRACT(DAY FROM sysdate) from dual;
select to_char(sysdate, ‘dd’) from dual;


Data atual no ORACLE – sysdate / getdate

julho 8, 2015

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/