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.