Trabalhando com Datas

Agora vamos ver uma parte amplamente utilizada por paticamente qualquer sistema, as funções de datas. Lembrando que podemos fazer operações matemáticas entre datas, retornando assim um número representando a diferença de dias entre ambas. Se agente somar ou subtrair uma data irá retornar uma data somando ou subtraindo o número de dias. Vamos começar logo com a primeira função mais simples e muito usada.

SYSDATE

Esta função não aceita nenhum parâmetro e retorna a data atual do servidor em que o Oracle está instalado, obedecendo a máscara DD-MON-RR.

ROUND

Função recebe dois parâmetros, o primeiro que é obrigatório é do tipo DATE. O segundo que é opcional é o nível de detalhe que especifica se a data será arredondada para o dia mais próximo, ou hora, ou dia, ou mês, ou ano e etc. Se esse segundo parâmetro for omitido, será considerado o nível de detalhe de dia. Exemplo a seguir.

ROUND(DATE)

ROUND(DATE)

TRUNC

Mesma coisa que o ROUND, apenas com a diferença que ele sempre irá arredondar para baixo!

NEXT_DAY

Esta função tem como entrada dois parâmetros, o primeiro é uma data e o segundo o um texto com o nome do dia da semana. Assim ele retorna a próxima data que cai no dia da semana que especificamos. Vejamos um exemplo.

NEXT_DAY

NEXT_DAY

Lembrando que no exemplo acima o dia da semana em sysdate é um sábado.

LAST_DAY

Função extremamente simples, aceita apenas um parâmetro, do tipo data, lembrando que pode ocorrer o auto casting tanto nessa como em diversas outras funções. O retorna desta função é do tipo data com o último dia do mês referente a data que foi passada como parâmetro.

ADD_MONTHS

Função bastante simples, recebe apenas uma data e um número n como parâmetros de entrada, retornando uma nova data adicionada de mais n meses. Devemos prestar atenção nessa função, pois ela não adiciona dias e sim meses. Veja no exemplo abaixo.

ADD_MONTHS

ADD_MONTHS

Percebemos que essa função não adiciona 30 ou 31 dias a data passada como parâmetro. Ao invés disso, ela adiciona apenas um mês preservando o dia, salvo no caso em que a data que foi passada como parâmetro é o último dia do mês, então ele retornará o último dia do mês na data acrescida de n meses.

MONTHS_BETWEEN

Recebe duas datas como parâmetros e retorna um número indicando a diferença de meses entre as datas fornecidas. Lembrando que se a primeira data for menor que a primeira o resultado será negativo.

NUMTOYMINTERVAL

Função bem diferente e talvez um pouco difícil de ser entendida, mas basta se concentrar um pouco que fica bem fácil. Essa função recebe dois valores, o primeiro é um número e o segundo pode ser um desses dois valores: MONTH ou YEAR. E retorno dessa função é o intervalo de ano e meses desse número na unidade de tempo escolhida. Vejamos um exemplo para entender melhor.

NUMTOYMINTERVAL

NUMTOYMINTERVAL

Em ambos os casos transformamos o número 28 em um intervalo de anos e meses. No primeiro caso escolhemos a unidade de tempo mês, assim sendo, o resultado é 2 anos(24 meses) e 4 meses. E no segundo caso fica bem fácil, escolhemos a unidade de tempo ano, ou seja, retorna o número 28.

NUMTODSINTERVAL

Bem parecida com a função anterior, mas ao invés de retornar um intervalo de ano e meses, retorna um intervalo de dia e segundos. Recebe dois parâmetros, o primeiro um número e o segundo a unidade de tempo que pode ser: DAY, HOUR, MINUTE e SECOND. Vejamos alguns exemplos.

NUMTODSINTERVAL

NUMTODSINTERVAL

Depois de termos entendido a função anterior, essa fica bem mais fácil. Em todos os 4 exemplos transformamos o número 24 em um intervalo de dia e segundos. No primeiro caso especificamos que o número que informamos representa dias, então o resultado é 24 dias. No segundo caso informamos que o número 24 representa horas, e em um intervalo de dia e segundos isso representa um dia. E no segundo e terceiro caso o retorno é 24 minutos e 24 segundos respectivamente.

Anúncios

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , , , , , , ,
Publicado em Sem categoria

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 138.077 Visualizações
%d blogueiros gostam disto: