Pular para o conteúdo principal

Funções de data Oracle

 

image

Com o Oracle é possível obter uma série de resultados a partir de uma ou mais datas, como por exemplo verificar o último dia do mês ou verificar a quantidade de meses entre duas datas, então vamos a alguns exemplos:

 

Data atual do sistema: SYSDATE

Remover meses de uma data: ADD_MONTHS(SYSDATE, -1)

Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1)

Buscar o último dia do mês: LAST_DAY(SYSDATE)

Primeiro dia do mês: TRUNC(SYSDATE, ‘MONTH’)

Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, ‘27/07/1982’)

Primeiro dia do ano: TRUNC(SYSDATE, ‘YEAR’)

Dias da semana: DECODE( TO_NUMBER( TO_CHAR          (SYSDATE, ‘D’) )

,1, ‘domingo’

,2, ‘segunda-feira’

,3, ‘terça-feira’

,4, ‘quarta-feira’

,5, ‘quinta-feira’

,6, ‘sexta-feira’

,7,’sábado’

)

Comentários

  1. Ótimo!! Ajudou muito, obrigada.

    ResponderExcluir
  2. Streaming de radio ShoutCast com auto-dj e hospedagem para sites e com melhor custo beneficio da internet so na

    ABNIX.com.br

    Streaming para rádio - 200 ouvintes - Qualidade: 32 kbs - Auto Dj 1 Giga - R$ 10.90

    Os planos Shoutcast vem com AutoDJ, ou seja sua rádio pode ficar 24 horas no ar, além da possibilidade de entrar

    com sua programação ao vivo na hora que desejar.

    Em todos os planos de streaming, você terá gratuitamente 3 meses de hospedagem no PLANO BRONZE de graça sem pagar nada durante 3 meses.

    ATENÇÃO *Cobrimos oferta da Concorrência (sujeito a análise).

    Criação de Sites a Partir de 300 reias.

    WWW.ABNIX.COM.BR

    ResponderExcluir
  3. Muito simples, mas muito funcional. ótima dica. Obrigado

    ResponderExcluir
  4. Dia da semana não é mais fácil:

    SELECT TO_CHAR(SYSDATE,'DAY') FROM DUAL

    ResponderExcluir
  5. e a quantidade de dias entre duas datas, como faz?

    ResponderExcluir
  6. Olá Anônimo, você pode fazer data - data:

    select (sysdate - sysdate+1) from dual;

    ResponderExcluir
  7. Ola Boa tarde, gostaria de saber se é possível descobrir qual o primeiro e sétimo dia da semana. Exemplo:

    01/01/2017 = domingo then 1º domingo
    02/01/2017 = segunda-feira then 1º segunda
    03/01/2017 = terça-feira then 1º terça

    08/01/2017 = domingo then 2º domingo
    09/01/2017 = segunda-feira then 2º segunda

    Assim por mês.... todos as anos.

    ResponderExcluir
    Respostas
    1. Este comentário foi removido pelo autor.

      Excluir
    2. select replace(to_char(sysdate,'day'),'-feira') from dual
      Troque sysdate pela data desejada.

      Excluir
  8. Como faço para trazer o nome do MÊS, não sendo o mes atual que estamos, por exemplo para um relatorio, trazer o nome do mes do lado da data.

    ResponderExcluir
    Respostas
    1. Olá Anônimo! Não sei se entendi bem sua dúvida, mas para mostrar o nome do "próximo" mês você poderia adicionar um mês ao mês atual com o "ADD_MONTHS" e ai mostrar o nome desse mês com o "TO_CHAR", ficaria algo como: "TO_CHAR( ADD_MONTHS( SYSDATE, 1 ) , ‘MONTH’ )"

      Excluir

Postar um comentário

Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.

Mais visitadas

Listar arquivos existentes em diretório (Delphi)

Mostraremos uma maneira simples e prática para listar o conteúdo de um diretório com a opção de incluir nessa listagem os arquivos de seus subdiretórios. No exemplo abaixo temos um Edit para receber o diretório a ser pesquisado um CheckBox para indicar se os subdiretórios entrarão na pesquisa um botão para efetuar a pesquisa e um Memo para listar os arquivos encontrados, no final um Edit que receberá o cálculo final (em bytes) da soma do tamanho dos arquivos. procedure TForm1.Button1Click(Sender: TObject); begin   tamanhoTotal := 0;   memLista.Lines.Clear;   ListarArquivos(edtDiretorio.Text, chkSub.Checked);   Edit1.Text := IntToStr( tamanhoTotal ); end; procedure TForm1.ListarArquivos(Diretorio: string; Sub:Boolean); var   F: TSearchRec;   Ret: Integer;   TempNome: string; begin   Ret := FindFirst(Diretorio+'\*.*', faAnyFile, F);   try     while Ret = 0 do ...

Lista de políticos com ficha suja

ATUALIZAÇÃO (08/03/2012 ano de eleição) Representantes de duas pessoas da lista (Eliseu Padilha e Alex Canziani) entraram em contato e pediram que esses fossem removidos, alegando que não houve condenação. É justo essa requisição, porém vale lembrar que escândalos nacionalmente reconhecidos de corrupção não deram em nada, por isso o que realmente conta nesse ano de eleição é uma pesquisa minuciosa sobre os candidatos escolhidos, eu particularmente, por não estar nem um pouco satisfeito, não irei votar em ninguém que já tenha sido eleito. Estou voltando a postar por um motivo nobre, meu tempo continua apertado mas esse post é rápido, na verdade nem meu ele é (visitem o espaço de nosso amigo Lord ), estou apenas repassando essa valiosa informação. Teremos eleição esse ano, e é importante não repetirmos erros passados, vamos ficar atentos em relação a esses nomes e exclui-los de vez do cenário politico nacional. Façamos nossa parte, publicando em nossos blog...