RSS

Artigos

Trabalhando com Datas

Postado em 08/08/2011 às 14:58 em Banco de Dados

Oracle

Olá pessoal, estou de volta com um artigo que, logo que comecei a utilizar o banco de dados Oracle, me tirou o sono... rsrs... acho que todos nós já tivemos problemas com manipulação de datas né? Eu não fui diferente.

Sei que existem artigos riquíssimos na internet sobre este conteúdo, mas resolvi deixar uma pequena contribuição também.

Vamos aos exemplos, que fica muito mais fácil para entender:

Trazer data atual

select TO_CHAR(SYSDATE,'DD/MM/YYYY') from dual;

Trazer o último dia do mês corrente

select TO_CHAR(LAST_DAY(SYSDATE),'DD/MM/YYYY') from dual;

Trazer o primeiro dia do mês corrente

select TO_CHAR(TRUNC(SYSDATE,'MONTH'),'DD/MM/YYYY') from dual;

Trazer a quantidade de meses entre duas datas

select MONTHS_BETWEEN(SYSDATE,'01-JAN-2011') from dual;

Obs.: você pode usar também os comandos FLOOR(MONTHS_BETWEEN(SYSDATE,'01-JAN-2011')), onde o resultado será arredondado para mais; ou CEIL(MONTHS_BETWEEN(SYSDATE,'01-JAN-2011')), onde o resultado será arredondado para menos.

Subtrair um mês da data atual

select TO_CHAR(ADD_MONTHS(SYSDATE,-1),'DD/MM/YYYY') from dual;

Adicionar um mês à data atual

select TO_CHAR(ADD_MONTHS(SYSDATE,1),'DD/MM/YYYY') from dual;

Trazer o primeiro dia do ano corrente

select TRUNC(SYSDATE,'year') from dual;

Trazer data por extenso

select TO_CHAR(SYSDATE,'dd " de " FMMONTH " de " YYYY','nls_date_language=portuguese') from dual;

Calcular a idade de uma pessoa

select CEIL(FLOOR(MONTHS_BETWEEN('30/04/1970',SYSDATE)) / 12) from dual;

Trazer o dia da semana corrente

select DECODE(TO_NUMBER(TO_CHAR(SYSDATE,'D')),2,'Segunda-feira',3,'Terça-feira',4,'Quarta-feira',5,'Quinta-feira',6,'Sexta-feira',7,'Sábado',1,'Domingo') from dual;

Estas foram algumas das funções que eu já usei. Conforme for descobrindo outras, vou postando aqui para complementar o artigo ok?

Espero que isto o ajude, como me ajudou!
Abraços,

Silvia Pires
Solicite uma visita: +55 (12) 3322-4581
Copyright @ 2002 - Todos os direitos reservados