Manipulação de datas no Oracle – Parte II

Manipulação de datas no Oracle – Parte II

No post anterior de Oracle, falamos sobre manipulação e formatação de datas no Oracle

Agora, vamos continuar a abordar o assunto com outros comandos úteis para trabalhar com datas no Oracle.

Cálculo com Datas

No manuseio de consultas via banco de dados, muitas vezes é necessário, efetuar cálculos com datas, seja para apurar a diferença entre uma data e outra, adicionar ou subtrair dias a uma data, enfim, existem diversos cenários em que precisamos efetuar operações com datas.

Por isso, agora vamos demonstrar algumas funções e comandos úteis na manipulação de datas via Oracle.

SYSDATE

A função SYSDATE retorna a data e hora corrente do servidor que esta instalado o seu banco de dados Oracle.

É comum utilizar SYSDATE a partir da tabela interna e vazia chamada DUAL.

select sysdate from dual;

Mas pode se utilizar a função TO_CHAR para formatar a saída de data:

SELECT TO_CHAR (SYSDATE, 'MM-DD-YYYY HH24:MI:SS') "Agora" FROM DUAL;

Resultado

Agora

——————-

04-13-2016 11:45:51

Operações aritméticas

É possível realizar cálculos com datas, utilizando operadores aritméticos.

Operações possíveis:

  • date + number
    • Adiciona um número de dias à data, retornando uma data.
  • date – number
    • Subtrai um número de dias da data, retornando uma data.
  • date – date
    • Subtrai um número de dias da data, retornando uma data.
  • date + number/24
    • Adiciona um número de horas à data, retornando uma data.
SELECT HIREDATE,HIREDATE-7,SYSDATE-HIREDATE

FROM EMP

WHERE HIREDATE LIKE '%06%'
Operação de Soma e Subtração (+ e -) com datas

No Oracle, sempre calcula usando o número como dias e o calculo só pode ser feito data + ou – dias. Ficando assim:

select sysdate – 2 from dual;

Isso retornará o dia antes de ontem. E sendo + 2 seria o dia depois de amanhã.
Ou seja, soma-se ou subtrai-se uma quantidade de dias, esse número poderá ser quebrado, representando horas.
Deve-se somente dividir-se 1 por 24, por exemplo, para fazer o calculo em horas.

A única função dessas duas que funciona com 2 datas é a de subtração, que retornara a diferença em numero de dias.

Operação de Adição de meses

Agora que você já sabe como funciona a adição de dias a uma data no Oracle, vamos ver como adicionar meses a uma data, para isso, utiliza-se o função ADD_MONTHS, usando dessa forma:

select ADD_MONTHS(sysdate, 2) from dual;

Onde o primeiro parâmetro é a data e o segundo a quantidade de meses que se quer adicionar.

NOTA: Se é o ultimo dia do mês de janeiro, por exemplo, somando-se um mês, vai para o ultimo dia do mês de fevereiro.

Descobrir a maior data dentre algumas datas

A função utilizada para descobrir a maior data entre diversas opções é a GREATEST e pode-se passar várias datas como parâmetro, dessa forma:

select GREATEST(sysdate, sysdate-2, sysdate+5, sysdate+15, sysdate-7) from dual;

Descobrir a menor data dentre algumas datas

Já a função utilizada para descobrir a menor data entre diversas opções é a LEAST e pode-se passar várias datas como parâmetro, da seguinte forma:

select LEAST(sysdate, sysdate-1, sysdate+3, sysdate+10, sysdate-3) from dual;

Retornar o último dia de um mês

A função que informa se uma data informada é o ultimo dia de um mês é a LAST_DAY, passado como parâmetro uma data dentro do mês do qual quer se saber o ultimo dia.

select LAST_DAY(sysdate) from dual;

Calcula a quantidade de meses entres 2 datas

A função MONTHS_BETWEEN irá retornar a quantidade de meses entre duas datas, mesmo que não dê um mês inteiro a função retornara um número quebrado relativo a esse período.

select MONTHS_BETWEEN(sysdate-10, sysdate+30) from dual;

Retorna a data para o próximo dia da semana

A função NEXT_DAY retorna para uma determinada data, o próximo dia da semana definido no segundo parâmetro, dessa forma:

select NEXT_DAY(sysdate, ‘FRI’) from dual;

Dessa forma retornara a próxima sexta-feira.

Obrigado

Espero que tenham gostado de mais essas dicas para Manipulação de datas no Oracle, com estas informações você pode criar diversas consultas com calculo e operações com datas.

Se você gostou, compartilhe estas dicas com um amigo ou participe de nossas redes sociais.

Caso queira nos incentivar a criar mais conteúdos como este, prestigie nossos anunciantes.

Muito Obrigado
Um Grande Abraço

Renato Sanches
Gestor de TI – Tecnologia da Informação
Trabalha com Administração de banco de dados Oracle, SQL Server e MySQL

Posts Similares