fbpx

Manipulação de datas no Oracle – Parte II

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.

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

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.

 

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

COMPARTILHE ISSO:

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on pinterest
Pinterest
Share on tumblr
Tumblr
Share on whatsapp
WhatsApp
Share on reddit
Reddit
Share on email
Email

Comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.